二进制与加法

二进制加法和进位:为什么 1+1=10

二进制每一位只能写 0 或 1。1 加 1 得到 2,一位放不下,所以本位写 0,再向左边高一位送出一个 1,写成 10₂。这个送出去的 1 就是进位。

四条基本规则

一位加一位只有四种情况。和表示本位留下的数字,进位表示要送往高一位的数字。

一位二进制加法
算式和进位二进制结果
0+0000₂
0+1101₂
1+0101₂
1+10110₂

1+1+1 等于 11₂

多位相加时,某一列除了两个数字,还可能收到右边送来的进位,这时一列里有三个 1 相加。

1+1+1 等于 3。3 在二进制里写作 11₂:本位留下 1,再向高一位送出 1。

逐列计算 3+1

算 0011₂ + 0001₂,也就是 3+1。从最右边的一列开始,每列先写本列结果,再把进位交给左边一列。

  • 第一列(1 位):1+1,本列写 0,向第二列送进位 1。
  • 第二列(2 位):1+0 再加进位 1,等于 2,本列写 0,向第三列送进位 1。
  • 第三列(4 位):0+0 再加进位 1,本列写 1,不再进位。
  • 第四列(8 位):0+0,本列写 0。
  • 结果是 0100₂,也就是 4,和 3+1 一致。

0011₂ + 0001₂ = 0100₂

位值8421
A0011
B0001
进位输入 Cin0110
和 S0100
进位输出 Cout0011

进位: 8 ← 4 ← 2 ← 1

上面一行是 0011₂,下面一行是 0001₂。最右列 1+1 写 0 进 1;第二列 1+0+1 写 0 进 1;第三列 0+0+1 写 1 不进位;第四列写 0。结果 0100₂ 等于 4。

别把二进制结果读成十进制

1+1=10₂ 里的 10 读作“一零”,表示一个 2 加零个 1,也就是十进制的 2,不是十。

写题目时加上下标 ₂,或者写明“二进制”,就不容易和十进制混在一起。

自我检查

  1. 1₂ + 1₂ 的结果 10₂ 是十进制的几?

    答案

    是 2。左边的 1 在 2 位上,右边的 0 在 1 位上,2+0 等于 2,不是十。

  2. 某一列是 1+1,又收到进位 1,本列写几,要不要进位?

    答案

    1+1+1 等于 3,二进制是 11₂,所以本列写 1,并向高一位进位 1。

  3. 算 0010₂ + 0010₂。

    答案

    第一列 0+0 写 0;第二列 1+1 写 0 进 1;第三列 0+0+1 写 1;第四列写 0。结果 0100₂,十进制 2+2=4。