谈谈计算机中的编码问题
在介绍这个问题之前先扯一下计算机编码的发展史。
有没有同学想过1个字节为什么等于8个比特(1B=8b)?为什么一个英文字母占用1字节,而一个汉字占用两字节(然而实际要考虑是什么编码)?
如果处理足够的数据以使计算变得可行,那么更少的位就不起作用,而太多的位会导致昂贵的硬件。——摘自software enginering评论
字节,原意就是用来表示一个完整的字符的。最原始的时候“计算机”(或许当时还不能称为计算机)完全是以二进制来计算工作的,当时是没有字节的概念的。字节其实就是编码发展的必然,然而历史为什么会折中选择8位?从最早的打孔I/O到后来的键盘显示器,我们处理的数据也在不断发展:数字、控制符、符号、英文字符、多国语言字符。最初的计算机性能和存储容量都比较差,所以普遍采用4位BCD编码(这个编码出现比计算机还早,最早是用在打孔卡上的)。BCD编码表示数字还可以,但表示字母或符号就很不好用,需要用多个编码来表示。后来又演变出6位的BCD编码(BCDIC),以及至今仍在广泛使用的7位ASCII编码。不过最终决定字节大小的,是大名鼎鼎的System/360(当时的大型计算机)。...
2018-10-31
编码