奎克的藏经阁 · 原书印刷页

编码 隐匿在计算机软硬件背后的语言 · 第 187 页

PDF 物理页索引 203 · 编码隐匿在计算机软硬件背后的语言

书名
编码 隐匿在计算机软硬件背后的语言
作者
未记录
印刷页
187
PDF 物理页
203(从 0 开始)
章节
编码隐匿在计算机软硬件背后的语言
UUID
38270854-596f-4a26-8183-db8c968c6020
来源类型
original_book
页面 SHA-256
9f1da67f59936ab553786a8d7bf02aed81e2c37a8f6274805a9796d28d35cd0a

由于有8位,一个字节的取值范围为00000000到11111111。相应地,它还可以表示成为0\~255之间的正整数,如果将一个数的补码作为其相对应的负数,那么一个字节可以表示在-128\~127范围内的正、负整数。一个给定的字节可以代表 $2 ^ { 8 }$ ,即256种不同事物中的一个。

让我们再来看看“8”这个数字,当8作为比特流的一种尺度,它的确表现出了非常完美的特质。字节在很多方面都比单独的比特更胜一筹。IBM采用字节有一个很重要的原因,就是这样一来数字就可以按照BCD形式(第23章中将会讲述)方便地保存。在本章随后的讲述中,我们会发现凑巧的是:全世界大部分书面语言(除了中文、日文以及韩文中使用的象形文字体系)的基本字符数都少于256,所以字节是一种理想的保存文本的手段。字节同样适合表示黑白图像中的灰度值,这是由于肉眼能区分的灰度约为256种。当一个字节无法表示所有信息(如刚提到的中文、日文以及韩文中使用的象形文字体系等),我们只需采用两个字节——就可以表示 $2 ^ { 1 6 }$ 也就是65536个不同的物体—这也是一种很好的解决方案。

字节的一半——即4比特———我们称之为半字节(nibble,也可拼写成nybble),在计算机这个领域,它并不像字节那样经常使用。

由于字节在计算机内部出现的频率较高,如果可以使用一种简洁的方式将它的内在含义准确表达出来,将会为我们带来很多方便。假如一个8位二进制数表示为10110110,这种表达方式自然而又直观,但它还不够简洁。

我们完全可以采用十进制表示法来表示字节,但从二进制转换到十进制需要进行一系列计算一—计算方法并不复杂,但是比较麻烦。我曾在第8章曾介绍过一种直观的计算方法。因为每一位二进制数对应着2的不同幂,因此我们可以把二进制数写到第一行,在底下写出每一位二进制数对应的2的乘方数,然后采用“列相乘、行相加”就可以得到对应的十进制数。下图表示了10110110的转换过程。

把十进制数转换为二进制数就需要一点点技巧了。我们可以用这个十进制数不断除以递减排列的2的幂,每除一次得到的商就是所要求的二进制数中的一位,而余数成为下一次运算的除数,它的作用是除以下一个较小一点的2的幂。下图表示了十进制数182转换成二进制形式的过程。

15 字节与十六进制

187