What & How & Why

这是本文档旧的修订版!


Boolean Arithmetic and the ALU

Week 2 notes


Binary Numbers

二进制数以 01 的组合表示各式各样的数据:n 位二级制数拥有 $2^n$ 的组合数量。

二进制表示数字

Binary to Decimal

二级制按照如下的规则转化为十进制:

  • 从左到右,从 0 开始,每一位的权为 $2^n$
  • 十进制的结果等于二进制数的带权和

比如下面的例子, 101 转化的的结果是 5



也就是如果有 k 位 Bit,最大能表达的数字为:

$$ 1 + 2 + 4 +...+2^{k-1} = 2^k - 1 $$

Fied word size

计算机中字的长度是有限的,因此表示的范围也是有限的。理想情况下,一个 8 位的字可以表示 $2^8 = 256$ 个数字;但实际上,如果需要表示负数,那么 8 位的其中一位就会作为符号位,这样 8 bit 只能表示 0-127

Decimal to Binary

按之前转化的逆顺序:

  • 找出当前 10 进制中最大的,可以通过 2^n 计算出的数
  • 从当前数中减去该数
  • 重复上面两步,直到只剩 1($2^0$)

这个过程相当于是在还原二级制构造十进制的过程。因此,之前能找出来的数证明其对应的 Bit 上都是 1,反之都是 0。以 87 位例:



Binary Addition