欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

二进制和位运算

程序员文章站 2023-10-16 20:02:52
原码 反码(取反) 补码(+1)负数用补码表示8 -00001000(原码)-01110111(反码)-01111110(补码)原码转补码 取反+1补码转原码 取反+1 位运算:&(与):遇0则0|(或):遇1则1^(异或):加法不进位 ~(取反):0变1,1变0>>(带符号右移):左边补符号位<< ......

原码 反码(取反) 补码(+1)
负数用补码表示
8 -00001000(原码)-01110111(反码)-01111110(补码)
原码转补码 取反+1
补码转原码 取反+1
--------------------------------------------------------------------------------
位运算:
&(与):遇0则0
|(或):遇1则1
^(异或):加法不进位

1 010 ^ 111
2 第一位:0+1=1
3 第二位:1+1=0
4 第三位:0+1=1
5 所以最后结果:101

 


~(取反):0变1,1变0
>>(带符号右移):左边补符号位
<<(左移):不带符号左移
>>>(不带符号右移):左边补0

1 a和b交换
2 a=a^b
3 b=a^b
4 a=a^b

a/2 等同于 a>>1
a*2 等同于 a<<1