位运算

位运算

位运算是指对数据二进制位进行运算
  • 按位与&
  • 按位或|
  • 按位异或^
  • 非~
  • 原码、反码、补码
按位与&

都为1则结果为1否则为0

1&1=1
1&0=0
0&0=0
按位或|

有一个为1则结果为1否则为0

1|1=1
1|0=1
0|0=0
按位异或^

相同为0 相异为1

1^1=0
1^0=1
0^0=0
非~

1变0,0变1

~1=0
~0=1
原码、反码、补码

原码:除符号位以外的其他二进制位

//1的原码,32位中去除左侧最高位剩下的31位就是原码
0000 0000 0000 0000 0000 0000 0000 0001

反码:正数的反码就是本身,负数的反码是原码取反

//1的反码
0000 0000 0000 0000 0000 0000 0000 0001
//-1的反码
1111 1111 1111 1111 1111 1111 1111 1110

补码:正数的补码是本身,负数的补码是原码取反加1

//1的补码
0000 0000 0000 0000 0000 0000 0000 0001
//-1的补码
1111 1111 1111 1111 1111 1111 1111 1111
应用场景:

原码:正数的位运算使用的原码
反码:为了得到补码的一个中间值
补码:反码+1,负数位运算需用的是补码

你可能感兴趣的:(位运算)