1 进位计数制
一般地说,n 位任意R进制正整数 [X]R  =a n-1 a n-2 a 1 a 0 可表达为以下形式:
[X]Ran-1×R^n-1 an-2×R^n-2a1×R^1a0×R^0
式中a0a1an-1为各数位的系数(ai是第i位的系数),它可以取 0 R 个数字符号中任意一个; R^0 R^1 R^n-1 为各数位的权; [X]R 中下标 R 表示 X R进制数。
【例1 】四位数 6486 ,可以写成:
6486 6 × 10^3 4 × 10^2 8 × 10^1 6 × 10^0
【例2 】八位二进制数 [X] 2 = 00101001 ,写出各位权的表达式,及对应十进制数值。
解: [X] 2 = [00101001] 2
=[0 × 2^7 + 0 × 2^6 + 1 × 2^5 + 0 × 2^4 + 1 × 2^3 + 0 × 2^2 + 0 × 2^1 + 1 × 2^0 ] 10
=[0 × 128+ 0 × 64+ 1 × 32+ 0 × 16+ 1 × 8+ 0 × 4+ 0 × 2+ 1 × 1] 10
= [41] 10
所以, [00101001] 2 = [41] 10
从以上例题可以看出,二进制数进行算术运算简单。但也可以看到,两位十进制数 41 ,就用了六位二进制数表示。如果数值再大,位数会更多,既难记忆,又不便读写,还容易出错。为此,在计算机的应用中,又经常使用八进制和十六进制数表示。
【例3 】求三位八进制数 [212] 8 所对应的十进制数的值。
[212] 8 = [2 × 8^2 + 1 × 8^1 + 2 × 8^0 ] 10
= [128 + 8 + 2] 10 = [138] 10
所以, [212] 8 = [138] 10
4) 十六进制数 ( Hexadecimal )
在十六进制中,基数为 16 。它有 0 、 1 、 2 、 3 、 4 、 5 、 6 、 7 、 8 、 9 、 A 、 B 、
C 、 D 、 E 、 F 十六个数字符号。十六进制的基本运算规则是“逢十六进一”,各数位的权为 16 的幂。
任意一个十六进制数,如 7B5 可表示为(7B5)16,或[7B5] 16 ,或者为 7B5H。
【例.4 】求十六进制正整数 [2BF] 16 所对应的十进制数的值。
[2BF] 16 = [2 × 16^2 + 11 × 16 ^1 + 15 × 16^0 ] 10 = [703] 10
2 不同进制间的转换
1) 二进制、八进制和十六进制数转换成十进制数
由二进制数的一般表达式可知,只要将其按加权系数法展开,即可得到对应的十进制数。
其它进制数同样按权展开相加即得对应的十进制数。
2)十进制数转换成二进制数
⑴ 整数部分的转换—— 除2取余法
整数部分的转换采用“除2取余法”。即用2多次除被转换的十进制数,直至商为0,每次相除所得余数,按照第一次除2所得余数是二进制数的最低位,最后一次相除所得余数是最高位,排列起来,便是对应的二进制数。
【例 1.2.6 】将十进制数 [13] 10 转换成二进制数。
解: 2 取余的方法可将13转换成二进制形式:[13]10[1101]2
小数部分的转换——乘2取整法
小数部分的转换采用 乘2取整法 。即用2多次乘被转换的十进制数的小数部分,每次相乘后,所得乘积的整数部分变为对应的二进制数。第一次乘积所得整数部分就是二进制数小数部分的最高位,其次为次高位,最后一次是最低位。
【例5 】将十进制纯小数 0.562 转换成保留六位小数的二进制小数。
解: 可用 2 取整法求取相应二进制小数:
取整
0.562 × 2 1.124 a -1 =1
0.124 × 2 0.248 a -2 =0
0.248 × 2 0.496 a –3 =0
0.496 × 2 0.992 a -4 =0
0.992 × 2 1.984 a -5 =1
由于最后所余小数 0.984>0.5 ,则根据四舍五入的原则,可得 a -6 =1
所以: [0.562] 10 [0.100011] 2
任何十进制数都可以将其整数部分和纯小数部分分开,分别用二进制转换为十进制例题 2 取余法 2 取整法化成二进制数形式,然后将二进制形式的整数和纯小数合并即成十进制数所对应的二进制
数。
【例6 】将十进制数 [13.562] 10 转换成保留六位小数的二进制数。
解:可先将整数部分由 2 取余法化成二进制数:[13] 10 [1101]2
再由 2 取整法将纯小数部分化成二进制数:[0.562]10[0.100011]2
然后将所得结果合并成相应的二进制数:[13.562]10[1101.100011] 2
3)二进制数与八进制数之间相互转换
因为三位二进制数正好表示 0 7 八个数字,所以一个二进制数要转换成八进制数时,以小数点为界分别向左向右开始,每三位分为一组,一组一组地转换成对应的八进制数字。若最后不足三位时,整数部分在最高位前面加 0 补足三位再转换;小数部分在最低位之后加 0 补足三位再转换。然后按原来的顺序排列就得到八进制数了。
【例7 】将二进制数 [1111010010.01101] 2 转换为八进制数。
解: 001 111 010 010 011 010
↓    ↓    ↓    ↓       
1      7      2      2   3      2
所以, [1111010010.01101] 2 [1722.32] 8
相反,如果由八进制数转换成二进制数时,只要将每位八进制数字写成对应的三位二进制数,再按原来的顺序排列起来就可以了。
【例8 】八进制 [473.52] 8 转换成对应的二进制数。
解: 4  7  3 5  2
↓      ↓ 
100 111  011101  010
即:[473.52] 8 [100111011.10101] 2
4)二进制数与十六进制数之间相互转换
因为四位二进制数正好可以表示十六进制的十六个数字符号,所以一个二进制数要转换成十六进制数时,以小数点为界分别向左向右开始,每四位分为一组,一组一组地转换成对应的十六进制数。若最后不足四位时,整数部分在最高位前面加0 补足四位再转换;小数部分在最低位之后加 0 补足四位再转换。然后按原来的顺序排列就得到十六进制数了。
【例9 [1101111001.0101101101] 2 转换成十六进制数。
解:001101111001010110110100
↓      ↓           
3    7    9   5    B    4
所以, [1101111001.0101101101] 2 [379.5B4] 16
相反,如果由十六进制数转换成二进制数时,只要将每位十六进制数字写成对应的四位二进制数,再按原来的顺序排列起来就可以了。
【例10 [3ED.72] 16 转换为二进制数时
解: 3  E  D 7  2
↓      ↓ 
0011 1110 11010111 0010
所以, [3ED.72] 16 [1111101101.0111001] 2
八进制与十六进制之间的转换都可借助于二进制数相互转换。十进制数转换成八进制或十六进制,也可借助于二进制数相互转换。
举例说明.使用二进制为中介.
十六进制数使用二进制数四位数字表示如A5B9,2568,4E95
八进制使用二进制数三位数字表示如256,742,654
对一个十六进制的数字每位数字可以用二进制以四个数字表示如十六进制数AE1F.3B可用二进制表示为
1010 1110 0001 1111. 0011 1011
再把上述二进制数转换成一个八进制数,以三个数字为单位重新分割高位以零补足低位以零补足
001 010 111 000 011 111.001 110 110
再把这个二进制数转换成八进制数为
127037.166
完成十六进制向八进制的转换
反之,八进制向十六进制转换只须把八进制转换成二进制,再把二进制转换成十六进制.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。