C的运算符:位运算符

来源:互联网 发布:linux zip命令 编辑:程序博客网 时间:2024/06/05 18:01
本博文主要讨论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可写算式如下:~00000001 1的二进制补码)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
0 0
原创粉丝点击