二进制操作
鱼忆七秒呐
这个作者很懒,什么都没留下…
展开
-
二进制位模式从左到右的翻转
//编写函数://unsigned int reverse_bit(unsigned int value);//这个函数的返回 值value的二进制位模式从左到右翻转后的值。////如://在32位机器上25这个值包含下列各位://00000000000000000000000000011001//翻转后:(2550136832)//10011000000000000000000原创 2016-07-22 14:45:27 · 757 阅读 · 0 评论 -
c语言中auto,static,register,const,volatile,extern认识与理解
auto auto关键字在我们写的代码中几乎是看不到的,但它却如此的重要,无处不在。它用来声明变量的生存期是自动的,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。编译器在默认的缺省情况下,所有变量都是auto,你就当他不存在吧。 static 修饰变量,他们都存在内存的静态区。 (1)修饰全局变量(静态全局变量):静态全局变量与其他的全局变原创 2016-09-02 17:42:30 · 595 阅读 · 0 评论 -
写一个宏将一个数的奇数位和偶数位交换
将奇数位和偶数为交换 eg:5->二进制0000 0000 0000 0000 0000 0000 0000 0101 交换后0000 0000 0000 0000 0000 0000 0000 1010 –>10 可以使用我们的位运算来实现#define EXCHANGE(num) (((num&0x55555555)<<1)|((num&0xAAAAAAAA)>>1原创 2016-10-22 23:25:57 · 388 阅读 · 0 评论 -
对一个8bit unsigned char的数据的指定位进行置1或置0操作,其它位保持不变
eg:10: 0000 1010 让其bit为的第3个位置1操作,就变成0000 1110 对应的数据是14 观察 0000 1010 0000 1110 其它位不变,指定位从0变为1,可以想到给指定位或1后该位为1,其它位或0而保持不变。 0000 1010 0000 0100(将1左移指定位减一位) 按位或 0000 1110 同理 让其bit为的第4个位置0操作,就变成原创 2016-11-28 14:20:43 · 782 阅读 · 0 评论