上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.2.2 底数(基数)
人类的双手一共有十根手指(“数字”的英文digit也有手指的意思),因此发明了十进制计数系统。但是,十进制并不是唯一的位值计数系统。实际上,对于大多数运行在计算机上的应用程序来说,十进制并不是最好的计数系统。我们来看看其他计数系统中数值的表示形式。
十进制位值计数系统的每一位都代表10个数字中的某一个再乘以10的幂。十进制数字使用10的幂,因此称为“基数为10”的数字。用另一组数字中的数字乘以另一个基数的幂,就得到了另外一套计数系统。基数又叫作底数,小数点(注意,术语小数点仅适用于十进制数字)左边的每一位数字都要乘以基数的幂,而且指数按位递增。
例如,可以用8个数字符号(0~7)和8的幂(指数按位递增)来创建一个基数为8(八进制)的计数系统。八进制数字1238(这里的下标表示基数)等于8310:
1×82+2×81+3×80
即
64+16+3
基数为n的计数系统需要n个不同的数字符号。这种计数系统的基数最小是2。如果基数在2~10之间,则使用0~n-1的阿拉伯数字符号(基数为n的系统)。如果基数大于10,则使用字母数字符号a~z或A~Z(忽略大小写)表示大于9的数字。这种约定可以支持最大基数为36(10个数字加上26个字母数字)的计数系统。除此之外,没有更大的计数系统。
在本书中,我们应付的都是基数为2、8及16的数值。因为基数2(二进制)是大多数计算机使用的机器表示形式,基数8在一些老计算机系统上很流行,而基数16更紧凑。许多程序都使用这三个基数,所以要熟悉它们。