数制转换
计算机内的数可有二进制、八进制、十六进制、十进制等不同的表现形式。人们多习惯于用十进制,计算机则主要使用二进制。因为同一个数可表示成不同进制的形式,故常有必要进行数制间的转换。
我们可以一般地描述r进制,其中r是一个大于1的正整数。r进制有如下特点:(1)数的每一位只能取r个不同的数字,其符号集是{0,1,…r-1};(2)逢r进位,r进制数的从小数点开始向左的第i位数(i=0,l,…, m)的权是ri,从小数点开始向右的第i位数(i =I,2,…,m)的权是ri。我们用( ) r表示括号内的数是r进制数。
因此,对r进制数(amam-1…ala0a-1 a-2…a-n)r按权展开的表达式为:
(amam-1…ala0a-1 a-2…a-n)r
=am×rm+am-1×rm-1+。。。+a1×r1+a0×r0+a-1×r-1+a-2×r-2+。。。+a-n×r-n (7-1-1)
例如,对十进制数, r=10,符号集为{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}。对十六进制数,r=16,符号集为{0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F}。不同数制之间的转换,对于整数部分,往往可直接按定义进行,即直接法,也可用余 数法转换。采用余数法时,若要将r进制的整数M转换成t进制数的整数,则把M除以 t并取余,再把上述得数除以t并取余,……,直至不能再除时,最后的商也作为余数。所有的余数按从后到前的次序依次从左到右排列就构成了所要求的t进制数。 【例7-1-1】把(1101011)2转换成十进制数。
【解】用直接法。
(1101011)2=1×26 + 1×25 + 0×24 + 1×23 + 0×22 + 1×21十1×20= (107) 10
【例7-1-2】把(107) 10转换成二进制数。
【解】用余数法。107/2得53余1; 53/2得26余1; 26/2得13余0; 13/2得6余 1; 6/2得3余0; 3/2得1余1。把最后的得数1亦作为余数,把所有的余数按从后到前 的次序从左到右排列得:
(107)10 = (1101011)2不同数制之间的转换,对于小数部分,可用取整法,即:要将r进制数的小数M转 换成t进制数的小数时,把M乘t ,取整数部分;又取上一步得数的小数部分再乘t,再 取整数部分;……;直至完毕或达到要求的位数。然后把各整数按从前到后的次序从左到 右排列,即构成所求的小数部分。
【例7-1-3】把(0.375)10转换成二进制数。
【解】用取整法。0.375×2=0.75,整数为0,小数为0.75; 0.75×2=1.50,整数为1,小数为0.5; 0.5×2=1.0,整数为1,小数为0,停止。把所得的整数按从前到后的次序从左到右排列,即得所求的二进制数(0.0ll)2即
(0.375)10=(0.0ll)2
【例7-1-4】把(0.011)2转换成十进制数。
【解】用取整法。(0.011)2×(10)10= (0.011)2×(1010)2= (11.11)2,整 (11)2 = 3,小数为(0.11)2; (0.11)2×(1010)2=(111.1)2,整数为(111)2=7, 小数为(0.1)2; (0.1)2×(1010)2= (101)2,整数为(101)2=5,小数为0,停止。所以(0.0ll)2= (0.375)10
例
1.目前一般计算机系统的工作原理是( B );,
A.程序设计 B二进制
C 存储程序和程序控制 D.结构化
2.在微型机计算机中,应用最普遍的字符编码是( B )。
A.BCD码 B ASCII码 C 汉字编码 D 补码
3.计算机中的字节是个常用的单位,一个字节由( C )个二进制位组成
A 2 B 4 C 8 D1 6
4.一个完整的计算机系统的包括( B )。.
A.主机及外围设备 B 硬件系统及软件系统
C 系统软件和应用软件 D.操作系统和应用系统
5.微型算机的算术逻辑部件包含在( A )之中
A CPU B I/O接口 C I/O设备 D.存储器