请改一下问题:电脑存储数据为什么以8位为一个存储单位?
没有任何标准限制者二进制只能有八位,最开始为了保存26个英文字母以及一些可见符号和一些控制字符,老美的专家给出了一套7位一字节的编码方式,就是著名的ASCII编码。这套编码只能容纳英文字符,后来为了现实需要只好加了一位,变成如今广泛使用的8位编码。
由于字符采用8位表示,编程自然以对应的长度来读取和计算最方便高效,因为不需要进行额外的转换。
但8位(一字节)表示的范围是0-255共256个数字,多数情景无法胜任,所以有了2字节的short,4字节的int以及8字节的long。注意int并不一定是4字节,int被定义为“机器自然长度”,所谓机器自然长度是指与机器处理数据时采用的位长相同,16位机器就是16位即2字节,32位机器就是4字节,64位机器就是8字节,而机器位长是指机器的总线宽度,总线宽度决定了机器一个时钟周期内可处理的数据量,总线一般分为数据总线、地址总线及控制总线,前二者一般位长是一样的,且如果笼统说总线位宽时一般只指前二者。所以程序员要定义一个数字首先想到的一定是int,这样可以保证自己的操作可以在一个时钟周期里完成,又不浪费总线的带宽。
而题主所说的2进制被限制为8位显然是无法成立的,只有字节被定义为8位。8位一个单元多用来存储ASCII字符,但为了兼容多国语言现在很多操作系统内码多用UICODE字符,只用8位存储一个基本数据的情况越来越少,8位一字节现在更多的只是用来作为表示存储容量的单位而已。
手机码的字,网页有问题,难受啊。