众所周知 bit
为信息的基本单位,信息交换的场景用的是 byte
。对于计算机的信息交换基本单位,最早我看到的是 byte
和 octet
这两个概念,类似 octet-stream 的说法。随着技术的发展,现在我们说到 byte
,基本都已默认是 8 个 bit
组成了,但背后的原因基本一无所知。
恰好看到这篇博文,文章探究了下为什么计算机行业最终选择了 8 bits
作为一个 byte
,做了一些猜测和资料的搜集,感觉还蛮有意思,这个设计也并非拍脑袋的理所当然。
Some possible reasons for 8-bit bytes
文中的几种猜测:
- 为了表达英文字母
- 适应早期计算机的 BCD (binary-code decimal) 法,表达十进制数
- 属于 ,可以很方便地通过移位来实现乘2和除2
- 硬件金贵,考虑空间占用和 cpu 的复杂程度,控制成本
- 兼容性考虑:Intel 8008 在 1972 年就采用了
8-bit bytes
,并且 80年代起 网络协议都用 8-bit bytes (octets)作为信息交换单位,所以基本都用它。