首页 > 编程语言 > 详细

【C语言天天练(二二)】位操作

时间:2014-07-06 12:06:52      阅读:358      评论:0      收藏:0      [点我收藏+]

C的位运算符


1、二进制反码或按位取反:~

~(10011010) = (01100101)。

假设val是一个unsigned char,~val不改名原来val的值。


2、位与:&

二进制运算符&通过对两个操作数逐位进行比较产生一个新值。

(10010011)&(00111101)=(00010001)。

C中的一个组合的位与赋值运算符:&=。


3、位或:|

二进制运算符|通过对两个操作数逐位进行比较产生一个新值。

(10010011)|(00111101)=(10111111)。

C中的一个组合的位或赋值运算符:|=。


4、位异或:^

二进制运算符^对两个操作数逐位进行比较。对于每个位,如果操作数中对应位有一个为1,结果为1。

(100100011)^(00111101)=(10101110)。

C中有一个组合的位异或赋值运算符:^=。


5、掩码:“位与”运算符通常跟掩码一起使用。掩码是某些位设为开(1)而某些位设置为关(0)的位组合。

flags = flags & MASK。


6、打开位。如,对于flags,想要打开它的第二位,可以使用flags = flags | (1<<2).


7、关闭位。如,对于flags,想要关闭它的第二位,可以使用flags = flags & (~(1<<2))。


8、转置位。转置一个位表示如果该位打开,则关闭该位;如果该位关闭,则打开该位。

如,对于flags,想要转置它的第二位,可以使用flags  = flags ^ (1<<2)。


9、移位运算符。左移:<<。右移:>>。左移运算符<<将其左侧操作数的值的每位向左移动,移动的位数由其右侧操作数指定。空出的位用0填充,并且丢弃移出左侧操作数末端的位。右侧位运算符>>将其左侧操作数的值的每位向右移动,移动的位数由其右侧操作数指定。丢弃移出左侧操作数右端的位


10、移位运算符:移位运算符能够提供快捷、高效的对2的幂的乘法和除法。

number << n : number乘以2的n次幂。

number >> n : 如果number非负,则用number除以2的n次幂。


【C语言天天练(二二)】位操作,布布扣,bubuko.com

【C语言天天练(二二)】位操作

原文:http://blog.csdn.net/to_be_it_1/article/details/36687851

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!