(一)与&
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
例:
1011 1001
1111 0011
——————
1011 0001
物理意义:
工厂总闸和车间分闸同时开,车间机器才有电。
(二)或|
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
例:
1010 0001
1001 1011
—————
1011 1011
物理意义:
有两个开关,任意开了房间都能亮。
(三)异或 ^
(四)取反 ~
~1 = 0
~0 = 1
(五)左移 <<
例:
1 = 0000 0001
1 << 0 = 1 = 1*2^0
1 << 1 = 0000 0010 = 2 = 1*2^1
1 << 2 = 0000 0100 = 4 = 1*2^2
1 << 3 = 0000 1000 = 8 = 1*2^3
(六)右移 >>
1B = 8b
1KB = 1024B
1MB = 1024KB = 1048576B
1GB = 1024MB
(七)原码/反码/补码
正整数的原码、反码、补码完全一样,即符号位固定为0,数值位相同
附:分析2-1=1在计算机内的运算原理(假设机器字长为8位)
- 使用补码:2-1=2+(-1) (即将符号位交给1使1变成-1)
-1的原码:1000,0001
按位取反:1111,1110 (注意:最高位即符号位不参与取反运算)
-1的补码:1111,11112 : 0000,0010 补码
+ -1 : 1111,1111 补码
______________________
1,0000,0001 补码 -> 最高位溢出丢弃 -> 0000,0001 补码/原码