01什么是 Byte?
上一篇我们认识了 Bit(比特): 一个 Bit 只能表示两种可能状态中的一种,通常写成 0 或 1。
当很多 Bit 组合在一起时,就可以表示更多不同的信息。 在今天绝大多数计算机系统中,8 个 Bit 组成 1 个 Byte(字节)。
1 Byte
= 8 Bit
02为什么今天通常是 8 个 Bit?
这个问题的答案不是“因为 8 有什么神奇力量”。 8 Bit 成为 1 Byte,是计算机历史和工程标准逐渐形成的结果。
早期计算机的“字节”长度并不完全统一。 随着计算机工业发展,8 Bit 的组合在字符表示、硬件设计、存储和通信中都非常方便, 最终逐渐成为主流,并被今天的标准固定下来。
字符表示很方便
8 Bit 有 256 种组合,足够容纳早期常见字符和控制代码
硬件容易统一
处理器、内存和外设可以围绕统一字节大小设计
存储方便组织
内存和文件通常可以按字节为基本单位进行编号和访问
行业标准统一
统一后,不同设备和软件更容易交换数据
038 个 Bit 能表示多少种情况?
一个 Bit 有 2 种可能。 每增加一个 Bit,组合数量都会翻倍。
种组合
种组合
种组合
种组合
8 个 Bit 一共有: 28 = 256 种不同组合。
00000000
如果按无符号整数解释,可以表示 0
11111111
如果按无符号整数解释,可以表示 255
04Byte 和字母、汉字有什么关系?
很多人第一次学 Byte 时会听到: “一个字节就是一个字符。” 这个说法并不准确。
在早期 ASCII 这样的编码中,一个英文字符通常可以放进 1 Byte。 但现代文字使用 Unicode 等编码,一个字符可能需要一个或多个 Byte来表示。
英文字符
在 UTF-8 中,常见 ASCII 字符通常占 1 Byte
A
中文字符
在 UTF-8 中,一个常见汉字通常占 3 Byte
中
Emoji
在 UTF-8 中很多 Emoji 会占 4 Byte,复杂 Emoji 还可能由多个码点组合
😀
05Byte 从来都是 8 Bit 吗?
不是。 在计算机发展早期,byte 这个词原本指一组可以作为单位处理的比特, 不同机器曾经使用过不同长度的 byte。
后来 8 Bit Byte 成为绝对主流。 今天的常见操作系统、网络协议和编程环境里, 我们几乎都可以把 Byte 理解成 8 Bit。
早期计算机
不同机器的 byte 长度曾经不完全相同
现代主流系统
1 Byte = 8 Bit 已经成为标准定义
06为什么 Byte 对内存这么重要?
现代通用计算机通常把内存设计成按字节寻址(byte-addressable)。 也就是说,每个内存地址通常对应一个 Byte 的位置。
地址像编号
系统可以用地址找到某个字节位置
如果一个数据类型需要多个 Byte,比如某个 32 位整数需要 4 Byte, 那它通常会占用连续的多个字节位置。
07bit 和 Byte 最容易混在哪里?
最常见的错误就是忽略大小写: b 通常表示 bit, B 通常表示 Byte。
网络速度
常用 bit 每秒表示
例如 100 Mb/s文件大小
常用 Byte 表示
例如一个文件 100 MB因为 1 Byte = 8 Bit, 所以只看理论单位换算: 8 Mb = 1 MB。 但真实下载速度还会受协议开销、网络波动等因素影响。
你已经知道了什么
- 在现代通用计算机中,1 Byte(字节)定义为 8 Bit。
- 8 Bit 成为主流不是自然规律,而是历史发展和行业标准共同形成的结果。
- 8 个 Bit 有 2^8 = 256 种不同组合。
- 同一组 8 Bit 可以按不同规则解释,因此它并不天然只代表 0 到 255。
- Byte 是存储单位,不等于字符;字符占多少 Byte 要看编码方式。
- 早期计算机中的 byte 长度曾不完全统一,今天 8 Bit Byte 已成为标准。
- Octet 专门表示严格的 8 Bit,在网络等场景中很常见。
- 现代计算机通常按 Byte 为基本单位给内存地址编号。
- bit 常写作 b,Byte 常写作 B,大小写不能混淆。
下一个问题: 既然 Bit 可以组成 Byte, 那二进制到底是怎样像十进制一样“数数”的? 下一篇:二进制是怎么数数的?