按照进位的原则进行计数,称为进位计数制,简称"数制"或"进制".在采用进位计数的数字系统中,如果只用r个基本符号表示数值,则称其为r进制,r称为该进制的基数。不同的数制,有下述共同特点:
(1)每一种数制都有固定的符号集:例如十进制数制的基本符号有10个(0.1.2.……,9),二进制数制的基本符号有0和1两个。
(2)每一种数制都使用位置表示法:即处于不同位置的数符所代表的值不同,与它所在位置的权值有关。
例如,十进制数1234.45可表示为:
二进制数11011011.01可表示为:
可以看出,各种进位计数制中的权值就是基数的某次幂,所以任何一种进位计数制表示的数都可以写成按权展开的多项式之和。计算机中常用的几种进位制如表1-1所示。
表1-1 计算机中常用的进位数制表示
将数由一种数制转换成另一种数制称为数制间的转换。常用数制包括二进制、八进制、十进制、十六进制等,在不同的场合(环境)需要使用不同的数制。常用数制转换方法如下:
(1)二进制、八进制、十六进制转换为十进制。一般采用乘权相加法,把二(八、十六)进制的每一位乘以它的权,然后相加。例如,把二进制数110.011转换成相应的十进制数:
(2)十进制转换为二进制、八进制、十六进制。整数部分和小数部分分别转换,然后再合并。整数部分方法是"除2(8、16)取余",小数部分方法是"乘2(8、16)取整".例如,把十进制数43.375转换成相应的二进制数的过程如图1-8和图1-9所示。
图1-8 整数部分除2取余法 图1-9 小数部分乘2取整法
图1-8表示整数部分除2取余过程,所以(43)10=(101011)2.图1-9表示小数部分乘2取整过程,所以(0.375)10=(0.011)2.合并整数和小数部分,所以(43.375)10=(101011. 011)2.
十进制转换成二进制数还有一种简便的方法:把一个十进制数写成按二进制数权大小展开的多项式,按权值从高到低依次取各项的系数就可得到相应的二进制数。例如,把十进制数175.71875转换为相应的二进制数
(3)二进制与八进制相互转换。从小数点起,把二进制数每三位分成一组,然后写出每一组的等值八进制数,顺序排列起来就得到所要求的八进制数;同理,将一位八进制数用三位二进制数表示,就可直接将八进制数转换成二进制数。例如,把二进制数10111011.01100111转换为相应的八进制数:
(4)二进制与十六进制相互转换。从小数点起,把二进制数每四位分成一组,然后写出每一组的等值十六进制数,顺序排列起来就得到所要求的十六进制数;同理,将一位十六进制数用四位二进制数表示,就可直接将十六进制数转换成二进制数。例如,把二进制数10111011.01100111转换为相应的十六进制数:
(5)八进制与十六进制相互转换。通常采用二进制作为中间媒介,即先把八进制转换为二进制,然后再把二进制转换成为对应的十六进制。把十六进制转换为八进制与此相似。