1. 二进制数与十进制数之间的转换
⑴二进制数转换成十进制数
[例](11111001001)2=1×210+1×29+1×28+1×27+1×26+0×25+0×24
+1×23+0×22+0×21+1×20
=(1993)10
(1011.101)2=1×23+0×22+1×21+1×20+1×2-1+0×2-2+1×2-3 =(11.625)10
⑵十进制数转换成二进制数
①十进制整数转换成二进制整数(除基(2)取余法)
[例]
2 1993
2 996 …………1…………0位 低位二进制整数
2 498 …………0…………1位
2 249 …………0…………2位
2 124 …………1…………3位
2 62 …………0…………4位
2 31 …………0…………5位
2 15 …………1…………6位
2 7 …………1…………7位
2 3 …………1…………8位
2 1 …………1…………9位
0 …………1…………10位 高位二进制整数
注意,除到0商时结束2除步,回写(从高位回到低位)余数便是所求二进制数,即:(1993)10=(11111001001)2
②十进制纯小数转换成二进制纯小数(乘基(2)取整法)
[例]
0.625
2
2-1位… 1. 250 高位二进制小数
2
2-2位… 0. 500
2
2-3位 1.000 低位二进制小数
纯小数位被全乘为0时,得准确二进制纯小数;否则(纯小数位永远被2乘不为全是0)只能化成满足某一精确度要求的二进制小数的近似值。例中(0.625)10=(0.101)2是准确值,其中101是顺写的积整位(从高位到低位)数。
2. 二进制数与八进制数之间的转换
⑴二进制数转换成八进制数(三位分组转换法,即合三为一法)
[例]将二进制数11010001011.11011用三位分组转换的方法转换成八进制数。
①从小数点起对整数位向左,对小数位向右三位分一组,不足三位时,在最外端加补0位,使之都成为三位:
(填入0位)0→011 010 001 011.110 110←0(填入0位)
②将三位一组二进制数分别转换成八进制数,并按原位置次序写成新的记数数,即得与原数等值的八进制数:3213.66
③从而有:(11010001011.11011)2=(3213.66)8
所以这样做,是因为八进制数的不同数字恰是8个三位二进制数。
⑵八进制数转换成二进制数
将八进制数转换成二进制数时,正是上述方法的逆(一分为三法)。只是注意要在转换成二进制数后,将相当于被加补的0位上的那些0略去,这些0在二进制记数中是可有可无的,它们并不影响记数值。
[例](3213.66)8=(011 010 001 011.110 110)2=(11010001011.11011)2
八进制数与十进制数之间的转换,我们至少可以这样做:
①通过二进制数作中间过渡,将它们互转:
(17)10=(10001)2=(010 001)2=(21)8
②用“除基(8)取余法”将十进制整数转换成八进制整数,用“乘基(8)取整法“将十进制纯小数转换成八进制纯小数;至于将八进制数转换成十进制数,只要“按位乘基幂”即可:
[例] ①由 8 17 ②∵ 0.6875
8
8 2……1(低位) (高位) 5. 500
0 8
……2(高位) (低位) 4.0000
得 (17)10=(21)8 ∴(0.6875)10=(0.54)8
③于是,(17.6875)10=(21.54)8
④而(21.54)8=2×81+1×80+5×8-1+4×8-2(按位乘基幂)
=16+1+5×0.125+4×0.015625=(17.6875)10
3. 二进制数与十六进制数之间的转换
⑴二进制数转换成十六进制数(四位分组转换法,即合四为一法)
[例](101101111100011.110101111)2=(0101 1011 1110 0011.1101 0111 1000)2
=(5BE3.D78)16
⑵十六进制数转换成二进制数(四位分组转换法的逆方法,即一分为四法)
[例](5BE3.D78)16 =(0101 1011 1110 0011.1101 0111 1000)2
=(101101111100011.110101111)2
十六进制数与十进制数之间的转换和八进制数与十进制数之间的转换的方法完全相同,对基16操作起来也很容易,这里就不再赘述了。
需要强调的是:计算机能够处理的任何信息,其数据形式在计算机内部都以0和1的方式进行存储。任何信息要想存入计算机,都必须经过一个转换装置,先把计算机要处理的信息转换成仅由0和1组成的二进制代码之后再存入计算机。要把存储于计算机内的各种信息输出来,也必须再经过转换装置把二进制信息转换成人们所熟悉的和常用的符号。这些工作是由计算机自动完成的,并不需要用户干预。
计算机所能处理和存储的信息是大量的,其软件系统要适应发展的需要,对表示信息的二进制数码(代码)必须进行统一的编码,以保证计算机的通用性,否则就会造成在互换和交流时的混乱。
通常,将十进制数字、英文字母和一些专用符号等数据都用一定长度的二进制数来表示,称作编码;用编码表示的数据就称代码。使用计算机时,程序、控制命令、数据等在其内部(机器级上)一律都用代码。现在,已有许多种编码方法,但被普遍使用的是下述的几种方法。