位运算在嵌入中也是一个重要的点,下面就简单介绍和举一些有用的例子,如果有不足的话,请补充,废话不多说,直接开始!位运算操作符有6个:&,|,^,~,>>,<<&只有1&1才等于1,其它都为0|只有0|0才等于0,其它都为1^异或,相异为1,相同为0,用来检查两..
分类:
编程语言 时间:
2014-10-29 19:44:09
阅读次数:
227
利用一个简单的事实:x ^ y ^ z 得到 a那么 a ^ z ^ y 就可以得到 x,或者 a ^ y ^ z 也可以得到 x加密:提供一个key.txt和input.txt,key.txt装你的密钥,比如:abc123,input.txt装原文(可以包含中文)解密:key.txt内容仍然是密钥...
分类:
其他好文 时间:
2014-10-29 14:36:07
阅读次数:
160
publicclassTest {publicstaticvoidmain(String[] args) {// 1、左移( > ) 高位补符号位// 0000 0000 0000 0000 0000 0000 0000 0101 然后右移2位,高位补0:// 0000 0000 0000 0000...
分类:
编程语言 时间:
2014-10-29 09:06:13
阅读次数:
157
位运算在驱动开发中是经常遇到的,尤其是置0和置1。既要指定的位数发生变化,又不能改变其它位的值。还要高效率的编写代码。这时候技巧就很重要了。在位运算中有几个符号: | 按位或 & 按位与 ^ 异或 ~按位非 1 #include 2 3 int main() 4 { 5 int a...
分类:
编程语言 时间:
2014-10-28 21:33:21
阅读次数:
284
总结IE与ff,chrome存在的差异或技巧或心得体会,我知道还有很多没总结出来,但后续学习到了会继续补充的~1、ie6,ie7不支持对内联元素设置display:inline-block对块级元素设置display:inline-block,ie6,ie7不支持。当您在ie7,ie6上浏览页面时....
分类:
其他好文 时间:
2014-10-28 21:23:13
阅读次数:
261
前几天写了一篇文章是在C语言中使用异或运算交换两个任意类型变量,其基础为使用^交换两个整数的算法:a ^= b;b ^= a;a ^= b;如果你看明白这个算法,就会发现这样的规律:一个数异或另一个数两次后,该数保持不变。即: c = a^b; c = c^b; c == a;这一规律就是使用异或运...
分类:
其他好文 时间:
2014-10-27 08:10:45
阅读次数:
164
有一个元素类型是整数的数组,数组中有一个数字仅仅出现了一次,其它都出现了两次,现在请把这个仅仅出现一个找出来。
分析:
1.1 首先想到的是排序,这样的时间复杂度是O(n*logn) + O(n),这样的速度的确不咋地;
1.2 最好的方法不是自己想出的,在网上找到的,是利用位运算的性质,两个相同的数字异或运算的结果是0,0和任何整数的异或运算是其本身,这两点足以,所以我们只需要遍历一边...
分类:
编程语言 时间:
2014-10-27 00:38:31
阅读次数:
162
前面我们谈到了,可用通过异或运算交换两个数,而不需要任何的中间变量。 如下面:void exchange(int&a,int&b){a ^=b;b ^=a;a ^=b;}然而,这里面却存在着一个非常隐蔽的陷阱。通常我们在对数组进行操作的时候,会交换数组中的两个元素,如exchang(&a[i], &...
分类:
其他好文 时间:
2014-10-26 21:13:00
阅读次数:
179
题目链接Solutin: 将每个开关使用的情况当成未知数,如果开关i能影响到开关j,那么系数矩阵A[j][i]的系数为1。 每个开关增广矩阵的值是开关k的初状态异或开关k的目标状态,这个应该很容易想到。 方程都列好了,直接消元就好了。code/* 解异或方程组*/...
分类:
其他好文 时间:
2014-10-26 19:45:54
阅读次数:
148
1.逻辑运算和算术运算有什么区别?算术运算就是平常我们所用的加减乘除,而逻辑运算是在二进制位上进行非、与、或和异或运算,逻辑运算中的二进制位只有两种状态:0(假)和1(真),结果中的二进制位也只有这两种状态。4.解释“溢出”这个词。 当我们进行计算机数字中的算术运算时,要记住每个数字和结果应该在分配...
分类:
其他好文 时间:
2014-10-26 15:31:58
阅读次数:
912