1个字节为什么是8位?

1个字节有8位,是跟ASCII编码有关。

众所周知,计算机只能识别0和1,除此之外的,它都不认识。而我们平常所认识的a、b、c这些字符,要想让计算机认识,就得有个将字符转换成一连串用0和1表示的组合的过程,这样到了计算机那儿,它才能认出来,这个过程就是编码,把人类认识的字符编码成计算机认识的字符。

可是话说回来,编码是个很灵活的事儿,比如Tom可以把a字符编码成001的数字组合,Jerry可以把a字符编码成110的数字组合,反正到了计算机那儿,你就按我给的编码规则,把数字组合再转换回字符不就行了,这种做法本身没有问题,只不过产生的后果就是混乱,无比的混乱,各种编码规则,到底听谁的?

因此,为了避免混乱,为了避免“公说公有理,婆说婆有理”,不能说很久以前吧,也得说在很早以前,美国出了一个编码标准,名字叫ASCII编码(全称American Standard Code for information Interchange 美国信息交换标准码),它把所有字符包括单词,标点符号全部都囊括进来了,总共是128(0~127)个字符,这足够美国人用了,而2^7=128,即7个0和1的组合,同时为了保险,万一不够用呢,就将8个0和1的组合存储在一个字节中,这就是1个字节(1B)用8个二进制位(8b)表示的由来。比如:前面提到过的字符a,它用ASCII编码后的二进制表示方法就是01100001。

补充说明:
既然1个字节是8位,可见位(bit)是存储数据的最小单位,字节(Byte)是计算机存储数据的基本单位,可字节却是硬件所能访问的最小单位。那么,为什么硬件所能访问的最小单位是字节,而不是位呢?因为硬件是通过地址总线访问内存的,而地址总线是以字节为单位进行分配的,因此地址总线只能精确到字节。那如何控制它的某一位呢?那就需要通过位运算符,即通过软件的方式来控制。

你可能感兴趣的:(1个字节为什么是8位?)