二进制运算
一 十进制与二进制互转【计算机以补码形式存储】
1 十进制->二进制【短除法】
32 0
2 16 0
2 8 0
2 4 0
2 2 0
1
2 二进制->十进制【按权展开】
十进制 | 二进制 |
---|---|
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
8 | 1000 |
9 | 1001 |
... | ... |
15 | 1111 |
16 | 10000 |
当二进制产生进位时,代表的十进制数为2、4、8、16、32、64、128...
列:
二进制数: “1011”
第一个1表示:1的个数
第二个1表示:2的个数
第三个0表示:4的个数
第四个1表示:8的个数
(在此可以类比十进制1011,由1个1000,0个100,1个10,1个1组成。)
所以,二进制数1011由1个8,0个4,1个2,1个1组成。按各位的权列出:
\[ 0000-1011= 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 =11 \hspace{28cm}
\]
\[ 0010-0000= 1*2^5 + 0*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 0*2^0 =32\hspace{25cm}
\]
二 二进制加减运算
1. 正数的二进制原码、反码、补码都是相同的
十进制 32
二进制[8位]
原码:0010-0000
反码:0010-0000
补码:0010-0000
2. 负数
十进制 -32
二进制[8位]
原码:1010-0000【最高位(符号位)为:1-与运算无关】
反码:1101-1111【最高位不变:原码的反码】
补码:1110-0000【反码+1】
3. 32+32
0010-0000
+ 0010-0000
0100-0000
4. 32+(-32)
0010-0000
+ 1110-0000
10000-0000
0000-0000【最后溢出最高位移除】
5. -32+(-32)
1110-0000
+ 1110-0000
11100-0000【最后溢出最高位移除】