对位与字节的深度认识

  以前只是形式上的知道1字节(byte)等于8位(bit或比特),1位代表一个触发器,表示0或1。仅仅这样,没有更深刻地理解。这次以下载一个txt文本为例,进行深度认识。

  

     txt文本第一个字是“福”,我们假设汉字“福”表示的二进制编码是10010000 11110000 ,占2个字节,也就是2x8=16个位,当宽度把福字送到了PC,我们就说下载了2Byte,也就是16bit。等等,2字节表示的二进制可能有65536种可能,一个汉字只表示一种,为何会占用2字节。可以这样想想,宽度是一条马路,一批批触发器运到了你PC的地方,运过来的时候,触发器的状态就定型了要么1要么0,因此1个汉字就把2个字节的所有位都占据死了,所以下载一个福字就是下载了2Byte。

   那下载2个汉字呢,按理说是4个字节,比如10010000 11110000 11101110 11001100, 这不是4294967296(2^32)种进制可能么,这可是65536的65526倍!感觉有问题。这种想法完全没问题,但我们计算机不是这么工作的,即使确实是2^32种可能对我们也没啥意义。一位就表示一个触发器,当PC取得了16个连续的触发器后,就翻译成一个汉字给我们,然后接着取下面的16个触发器进行翻译成一个汉字,两个汉字连起来确实是2^32 种可能,但这些可能对我们没什么用,我们需要的是实打实的触发器。

  

原文地址:https://www.cnblogs.com/zhansu/p/6344675.html