第三节 计算机的数制及其转换
一、数制的基本概念
数制就是数的进位制,是数的表示方法和运算规则。按进位原则进行计数的数制叫做进位计数制,简称进制。
进位计数制包括数位、基数和位权三个要素:
1.数位:指数码在一个数中所处的位置。
2.基数:指在某种进位计数制中,数位上所能使用的数码的个数。
例如,十进制的基数是10,八进制的基数是8,二进制的基数是2。
3.位权:指在某种进位计数制中,数位所代表的大小,对于一个R进制数(即基数为R),若数位记作i,则位权可记作R(i-1)。
进位计数制的特点:
1.有一个基数R,数字中使用0,1,2,…(R-1)个符号。
2.每位有固定的权。
3.位序的排列法:从小数点处算起,由小数点向左,规定位序为0,1,2…由小数点向右,规定位序为-1,-2,…
4.采用“逢R进一”的进位方法;如二进制逢二进一。
5.对任何一种进位计数制表示的数都可以写出其权展开的多项式之和。
如:1234=1×103+2×102+3×101+4×100
二、常用进制
十进制:基数为10,逢十进一,使用十个数码0,1,2,3,4,5,6,7,8,9表示数。
二进制:基数为2,逢二进一,使用两个数码0和1表示数。
八进制:基数为8,逢八进一,使用两个数码0,1,2,3,4,5,6,7表示数。
十六进制:基数为16,逢十六进一,使用十六个数码,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F表示数。A、B、C、D、E、F作为数码,与十进制中的10、11、12、13、14、15一一对应。
三、数制的转换
数制的转换中,通常在数值后面加字母D、B、O、H分别表示该数是10、2、8、16进制数。如10D、10B、10O、10H。也有用下标来表示进制的,如(10)10、(10)2、(10)8、(10)16 。
(一)二、八、十六进制数转换成十进制数
方法:按权展开多项式并求和
(kn kn–1…k1 k0. k–1…k–m)p
=kn×pn + kn–1×pn–1 +…+ k1×p1 + k0×p0 + k–1×p–1 + … + k–m×p–m
其中p为基数,代表二、八或者十六。
例如:
(1011.11)2 =1×23 + 0×22+1×21+1×20+1×2-1 + 1×2-2
=8+0+2+1+0.5+0.25= (11.75)10
(567)8=5×82 + 6×81 + 7×80=320 + 48 + 7=(375)10
(ABC.D)16=A×162+B×161+C×160+D×16-1
=2560+176+12+13×0.0625
=(2748.8125)10
(二)十进制数转换成二进制数
1.整数转换
采用“除2取余法”,即将该十进制数逐次除以基数2而取其余数,直至商为零止,上低下高,余数逆序排列。
例如将(81)10转换成二进制数,计算步骤如下:
所以(81)10=(1010001)2
同理,十进制整数转换成八进制整数采用“除8取余法”。十进制整数转换为十六进制整数采用“除16取余法”。
2.小数转换
采用“乘2取整法”,上高下低。
例如将0.375D转换成二进制小数,计算步骤如下:
0.375
整数部分为0 高位
整数部分为1
0.5
整数部分为1 低位
所以0.375D=0.011B
若小数乘2连续取整后,结果不为零,则取近似值到指定位数即可,一般为八位。
同理,十进制小数转换成八进制小数采用“乘8取整法”。十进制小数转换为十六进制小数采用“乘16取整法”。
3.任意十进制数转换
对于既有整数部分又有小数部分的十进制数,可以将其整数部分和小数部分分别转换成二进制数,再把两者按顺序组合起来。
例如(81.375)10=(1010001.011)2
(三)二进制数与八进制数转换
1.二进制数转换成八进制数
采用“三位一并法”,即对二进制数从小数点向两边每3位分节,将每一节的3位二进制数转换为一个八进制数字,将所得的各个八进制数字(包括小数点)拼接起来即是所求的八进制数。
注意:对二进制数分节时,若小数点右边最后一节不足3位,则要用0在右边补足到3位。若小数点左边最后一节不足3位,则要用0在左边补足到3位。
例如:11010101.1001 B
=11,010,101.100,100 B
=325.44 O
2.八进制数转换成二进制数
采用“一分为三法”,八进制数转换成二进制数就是上述过程的逆过程。将每一个八进制数字转换为3位二进制数,然后拼接起来即得二进制数。
例如:123.45 O=1,010,011.100,101 B=1010011.100101 B
(四)二进制数与十六进制数的转换
1.二进制数转换成十六进制数
采用“四位一并法”,即对二进制数从小数点向两边每4位分节,将每一节的4位二进制数转换为一个十六进制数字,将所得的各个十六进制数字(包括小数点)拼接起来即是所求的十六进制数。
注意:对二进制数分节时,若小数点右边最后一节不足4位,则要用0在右边补足到4位。若小数点左边最后一节不足4位,则要用0在左边补足到4位。
例如:11000101.10011 B=1100,0101.1001,1000 B=C5.98 H
2.十六进制数转换成二进制数
采用“一分为四法”,十六进制数转换成二进制数就是上述过程的逆过程。将每一个十六进制数字转换为4位二进制数,然后拼接起来即得二进制数。
例如:1F.ED H=0001,1111.1110,1101 B=11111.11101101 B