二进制运算

一 十进制与二进制互转【计算机以补码形式存储】

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【最后溢出最高位移除】
posted @ 2021-09-30 10:35  tlblog  阅读(521)  评论(0编辑  收藏  举报