二进制与加法
8 位二进制最大为什么是 255,不是 256
8 位二进制有 256 种不同状态,但第一种状态是 0,所以最后一种是 255。这里讲的是本项目使用的无符号非负整数模型。
每加一位,状态翻倍
一位只有 0 和 1 两种状态。每多一位,原来的每种状态后面都能接 0 或 1,状态数翻倍,所以 n 位有 2 的 n 次方种状态。
| 位数 | 状态数量 | 最大值 |
|---|---|---|
| 1 | 2 | 1 |
| 2 | 4 | 3 |
| 4 | 16 | 15 |
| 8 | 256 | 255 |
从 0 开始数
因为全 0 也是一种状态,表示 0,所以 256 种状态对应 0 到 255,最大值是 2 的 n 次方减 1。这不是只数到一半,而是 0 占掉了一个位置。
255 怎么来,256 为什么要九位
11111111₂ 等于 128+64+32+16+8+4+2+1,正好是 255。
再加 1 就是 100000000₂,也就是 256,需要第九位。
| 位数 n | 状态数量 2ⁿ | 最大值 2ⁿ − 1 |
|---|---|---|
| 1 | 2 | 1 |
| 2 | 4 | 3 |
| 4 | 16 | 15 |
| 8 | 256 | 255 |
255 + 255 = 510
11111111₂ + 11111111₂ = 111111110₂
两个 8 位数相加可以有九位
两个输入各在 0 到 255 之间,和最大是 510。Bit Kido 的 8 位计算器保留第九位,不会截断成 8 位。
本页只讨论无符号非负整数,不涉及有符号补码,也不代表所有 8 位数据的含义;真实硬件也可能有别的设计。
自我检查
4 位二进制有多少种状态?最大是多少?
答案
2×2×2×2=16 种状态,从 0 开始数,最大是 15,写作 1111₂。
表示 256 至少需要几位?
答案
九位。256 写作 100000000₂,8 位最多只到 255。
255+255 只保留 8 位行吗?
答案
在本项目的模型里不行。结果 510 写作 111111110₂,需要九位,计算器会保留最高进位。