①按位与&
两位全为1,结果才为1
特殊用法
1)清零
如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为0的数值做与运算,结果为0.
例如X=10101001
X&00000000=00000000
取一个数中指定位
例如:设X为10101110,取X的低4位
X&00001111=00001110
②按位或|
只要有一个为1,结果就为1
0|1=1 1|1=1
例如51|5
拆解为00110011|00000101=00110111
51|5=55
特殊用法
常用来对一个数据的某些位置1
设X=1010000,低四位置1
X|00001111=10101111
③异或运算^
不同为1,相同为0
特殊用法
1)使特定位翻转,要翻转的位对应为1,不需要的为0
设X=10101110,使X的低四位翻转
X^00001111=10100001
2)与0异或保留原值
X^00000000=10101110
3)变量交换值
A=A^B
B=A^B
A=A^B
④取反运算~
对一个二进制数按位取反
⑤左移运算<<
将一个二进制对象的各二进制位左移若干位(左边丢弃,右边补0)
若左移舍弃的高位不包含1,则每左移一位相当于乘以2
⑥右移运算>>
将一个二进制对象的各二进制位右移若干位(正数左补0,负数左补1,右边舍弃)
⑦无符号右移>>>
将一个二进制对象的各二进制位右移若干位(左边补0,右边舍弃)
⑧负数
负数以正数的补码形式表示
原码:一个数按照绝对值大小的二进制数
例如00000000 00000000 00000000 00001110为14的原码
反码:二进制数按位取反
例如:11111111 11111111 11111111 11110001位14的反码
补码:反码+1
11111111 11111111 11111111 11110001+1=11111111 11111111 11111111 11110010
即为-14
-14<<2=
11111111 11111111 11111111 11001000
取补码的原码对应的正值,取相反数即可
原码00000000 00000000 00000000 00111000
即-56