1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > C语言位运算符:与 或 异或 取反 左移和右移

C语言位运算符:与 或 异或 取反 左移和右移

时间:2021-02-07 07:39:35

相关推荐

C语言位运算符:与 或 异或 取反 左移和右移

C语言位运算符主要包括六种:与( & )、或( | )、异或( ^ )、取反( ~ )、左移( >> )和右移( << )

1.与运算(&)

参加运算的两个数据,按二进制位进行“与”运算。

运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;

即:两位同时为“1”,结果才为“1”,否则为0

例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3&5的值得1。

两个数与的结果一定是比任意两个数都小,换句话说,越与数越小

2.或运算(|)

参加运算的两个对象,按二进制位进行“或”运算。

运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1;

即 :参加运算的两个对象只要有一个为1,其值为1。

例如:3|5即 0000 0011 | 0000 0101 = 0000 0111 因此,3|5的值得7。

两个数或的结果一定是大于其中的任意一个数,换句话说,越或数越大

3.异或运算(^)

参加运算的两个数据,按二进制位进行“异或”运算。

运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0;

即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。

例如:9^5可写成算式如下: 00001001^00000101=00001100 可见9^5=12

4.取反运算(~)

参加运算的数据,按二进制位进行“取反”运算。

运算规则:~0=1; ~1=0;

即:参与运算的数据,对应的二进制取反后 0 变成 1 ,1 变成 0 。

例如: 3 :00000011 ; ~3 :11111100 = 252

5.左移运算(<<)

参与运算的数据,二进制全部向左移动 n 位,左边舍去,右边补 0

运算规则:00000101 << 1 = 00001010

即:参与运算的数据,对应的二进制位向左移动 n 位,左边舍去,右边补 0 。

例如:2 << 1 = 4 ; 00000010 << 1 = 00000100

左移一位相当于乘以 2

6.右移运算(>>)

参与运算的数据,二进制全部向右移动 n 位,右边舍去,左边补 0

运算规则:00000101 >> 1 = 00000010

即:参与运算的数据,对应的二进制位向右移动 n 位,右边舍去,左边补 0 。

例如 :2 >> 1 = 1 ; 00000010 >> 1 = 00000001

右移一位相当于除以 2

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。