美文网首页基要稳
[基要稳] 与(&) 、或(|)、异或(^) 、取反(~) 运算

[基要稳] 与(&) 、或(|)、异或(^) 、取反(~) 运算

作者: Guxxxd | 来源:发表于2021-09-29 14:03 被阅读0次

写于2020年03月26日

一、与(&)

参加运算的两个数据,按二进制位进行“与”运算。
运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;
例如:15&5 即 0000 1111 & 0000 0101 = 0000 0101 因此,3&5的值得5。

负数按补码形式参加按位与运算。

二、或(|)

参加运算的两个对象,按二进制位进行“或”运算。
运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1;
例如:3|5 即 0000 0011 | 0000 0101 = 0000 0111 因此,3|5的值得7。

负数按 补码 形式参加按位或运算。

补充

!!!补码是what
1、数据存储在内存中都是存储的二进制,二进制又可分为原码、反码、补码。最终存储在内存中的是“补码”。
2、二进制的第一位是符号位,0代表正数,1代表负数。
3、正数:原码=反码=补码

例如:9 == int == 4个字节 == 1个字节等于8位 == 整型有32位
正数的原码:
0000 0000 0000 0000 0000 0000 0000 1001
正数的反码就是正数的原码:
0000 0000 0000 0000 0000 0000 0000 1001
正数的补码也是正数的原码:
0000 0000 0000 0000 0000 0000 0000 1001

4、负数: 原码 = 补码取反加1,补码 = 原码取反加1

例如:-9
原码为首位为1的二进制数:
1000 0000 0000 0000 0000 0000 0000 1001
反码为符号位不变,其他位取反:
1111 1111 1111 1111 1111 1111 1111 0110
补码是反码加1:
1111 1111 1111 1111 1111 1111 1111 0111

三、异或(^)

参加运算的两个数据,按二进制位进行“异或”运算。
运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0;

交换律:A ^ B=B ^ A
结合律:A ^ B ^ C=A ^ (B ^ C)=(A ^ B) ^ C
自反律:A ^ B ^ B=A ^ 0=A
自反律:X ^ X=0 ,X ^ 0=X

四、取反(~)

参加运算的一个数据,按二进制位进行“取反”运算。
运算规则:~1=0; ~0=1;

使一个数的最低位为零,可以表示为:a&~1。
~ 1的值为1111 1111 1111 1110,再按“与”运算,最低位一定为0。因为“~”运算符的优先级比算术运算符、关系运算符、逻辑运算符和其他运算符都高。

补充

>>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0
正数: r = 20 >>> 2 的结果与 r = 20 >> 2 相同;

负数: r = -20 >>> 2
注:以下数据类型默认为int 32位
  -20:源码:10000000 00000000 00000000 00010100

    反码:11111111  11111111   11111111   11101011

    补码:11111111  11111111   11111111   11101100

    右移:00111111  11111111   11111111   11111011

    结果:r = 1073741819

相关文章

  • [基要稳] 与(&) 、或(|)、异或(^) 、取反(~) 运算

    写于2020年03月26日 一、与(&) 参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0; ...

  • C、数据结构知识点

    1. 位运算符有: &(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。 其中,按位取反运算符是单目运算...

  • 嵌入式C语言的位运算

    想必大家都了解&&(且运算符),||(或运算符),在C语言的位运算中 ,位或运算|,位与运算&,异或^,取反~。等...

  • 位运算:包括按位与(&)、按位或(|)、异或(^)、按位取反(~)以及移位(<<,>>)。“与”同为‘1’为‘...

  • 位运算

    名称符号 按位与 & 按位或 | 按位异或 ^ 按位取反 ~ 左移运算 << 右移运算 >> &按位与的用法(相同...

  • 3、小众运算符の大课堂(一)

    较为简单の位运算符: & 位与运算| 位或运算^ 位异或运算~ 位取反运算 举例: 要做位运算,首先要把数据转...

  • 位运算

    右移>> 左移<< 按位或 | 按位与 & 按位异或 ^ 按位取反~ 异或运算 x^0 = 0;x^1s = ~x...

  • 常见二进制操作

    基本运算符号 异或 -x 为取反+1

  • ios 中的位运算

    位运算的符号:~ | & ^ << >>分别代表的是按位取反,按位或,按位与,按位异或,左移,右移 按位取反操作 ...

  • 小朋友学C语言(24):位运算符

    位运算符有四个:“与(&)”、“或(|)”、“异或(^)”、“按位取反(~)”。 在了解位运算符之前,请先复习逻辑...

网友评论

    本文标题:[基要稳] 与(&) 、或(|)、异或(^) 、取反(~) 运算

    本文链接:https://www.haomeiwen.com/subject/qiewdhtx.html