#C运算符  位运算符

来源:互联网 发布:淘宝积分有什么用处 编辑:程序博客网 时间:2024/06/05 14:29
本博文主要讨论C语言的6种位运算符,共大家交流、学习。

1.按位与运算

按位与运算符"&"的功能是参与运算的两数相对应的二进制位相与。当对应的两个二进位均为1时,结果位为1,否则为0。(参与运算的数以补码方式出现,正数补码不变,负数补码,符号位不变,其它位按位取反加1)
例如:9&5可写算式如下: 00001001(9的二进制补码)&00000101 (5的二进制补码) 00000001(1的二进制补码)可见9&5=1。 

2.按位或运算

按位或运算符“|”的功能是参与运算的两数相对应的二进制位相或。只要对应的两个二进位有一个为1时,结果位就为1。
例如:9|5可写算式如下: 00001001(9的二进制补码)|00000101 (5的二进制补码) 00001101(13的二进制补码)可见9|5=13。

3.按位异或运算

按位异或运算符“^”的功能是参与运算的两数相对应的二进制位相异或,当两对应的二进制位相异时,结果为1,否则为0.
例如:9^5可写算式如下:00001001 (9的二进制补码)^00000101 (5的二进制补码) 00001100(12的二进制补码)可见9^5=12.

4.求反运算

求反运算符“~”的功能是对参与运算的数的各二进制位按位求反。
例如:~1可写算式如下:~000000011的二进制补码)11111110(254的二进制补码)可见~1=254.

5.左移运算

左移运算符“<<”的功能是把“<<”左边的运算数的各二进位全部左移若干位,移动的位数由“<<”右边的数指定移动的位数决定,高位丢弃,低位补0。相当于参与运算的数乘以位移位数的n次方。
例如:9<<1可写算式如下:00001001 (9的二进制补码)  00010010 (18的二进制补码)可见9<<1的值为18

6.右移运算

右移运算符“>>”的功能是把“>>”右边的运算数的各二进制位全部右移若干位,移动的位数由“>>”右边的数指定移动的位数决定,低位位丢弃,高位补0。相当于参与运算的数除以位移位数的n次方。

注:此博文参考地址
http://baike.baidu.com/link?url=D0bUOhZqMvJ8CxZ3MXVGgu4yp-L2kkhAj58sUlZ_c6UpSKkiMpFzc-n1_eYKJx5gAVt6q5HPga1B9MthphTIB_#2


原创粉丝点击