4第“章数制和码制 为一组,然后将每一组代之以等值的十六进制数,就得到∫所求的转换结果。 相反地,在将八进制数转换为一进制数时,只需将八进制数的每一位代之以 等值的3位二进制数并按原来的顺序排列起米就行了。 同埋,在将十六进制数转换为二进制数时,只需将十六进制数的每一位代之 以等值的4位二进制数并按原来的顺序排列起来就行了 【例1-3】试将二进制数(10111001.011011)2转换为等值的八进制 和十六进制数。 解:将给定的二进制数整数部分从右到左每3位分成一组、小数部分从左到 右每3位分成·组然后将每组用等值的八进制数代替,得到等值的八进制数为 (1011l00101.0110111)2 整数部分最左边一组的10应视为010,小数部分最右边的一组1应视为 100,即不够3位时以0补足三位 将二进制数的整数部分自右向左每4位分成一组,同时将小数部分自左向 右每4位分成一组,然后将每组代之以等值的十六进制数,则得到 10111001011.0110111)2 e ) 整数部分最右边一组的101应视为0101,小数部分最右边一组的111应视 为1110,即不够4位时以0补足四位。 4.将十进制数转换为等值的八进制和十六进制数 转换方法和步骤 (1)首先将十进制数转换为等值的二进制数。 (2)再将得到的二进制数转换为等值的八进制和十六进制数。 二、原码、反码、补码之间的转换 在数字电路中是用加在…进制数绝对值前面的符号位表示正、负数的。习 惯上用符号位的0表示正数,用符号位的1表示负数。用这种表示方法得到的 数码叫做原码。 同时还规定,正数的反码和补码与原码相同,所以正数不存在需要转换的 问题。 1.从负数的原码求反码和补码 解题方法和步骤 (1)保持符号位的1不变,将数字部分的每位求反(1改为0,0改为1)
1.1本章习题类型与解题方法5 就得到了反码。 (2)在反码的末位上加1,即得到补码 2.从负数的补码求原码 因为“补码的补码等于原码”,所以将补码求补,得到的就是原码。 【例1-4】写出二进制数+1010和-0101的原码反码和补码。 解:+1010的原码应写成01010,反码利补码与原码相同,也是01010。 0101的原码是10101,反码是11010,补码是11011 三、二进制数的补码运算 在数字计算机中,为了简化运算器的电路结构,是用补码相加完成两数相减 (不同符号两个数的代数和)运算的 解趑方法和步骤: (1)将两个带符号的加数写成补码形式 (2)将这两个补码按二进制加法相加,即得补码形式的和。 两数的符号位利来自数值部分的进位相加,所得结果就是和的符号位 这甲需要注意两点。第一,补码相加的和仍为补码,当符号位为1时,和为 负数,这吋的数值部分不是这个数的绝对值、第二,将两数写成补码时,数值部 分所取的位数必须足以表示和的最大绝对值,否则计算结果将出现错误。 【例1-5】试用补码运算的方法计算下列各式 (1)I101+0101;(2)1110-0111;(3)0111-1110;(4)-10l-1010。 解 (1)因两数相加之和的绝对值为10010,所以补码的数值部分至少应取5 位。加上I位符号位,补码一共为6位。于是得到两数的补码桕加结果 001lo1 +000101 010010 和的符号位仍为0,表示和为止数(+18) (2)因两数符号不同,和的绝对值一定小于加数当中绝对值较大一个的绝 对值,所以补码的数值部分不需要增加位数。由此可得两数的补码相加结 01110 11001 00111 和的符号位为0,表示和为正数(+7) (3)同上,因两数异号,所以补码的数值部分取4位即可。两数的补码相加 结果为
第一章数制和码制 00L +100I0 11001 和的符号位为1,表示和为负数 如果将和的补码再求补,则得到和的原码为10111(-7) (4)因两数绝对值之和为5位二进制数10101,所以补码的数值部分至少 需要用hi位表小。加上一位符号位以后,补码一共为6位。由此叮得到两数原 码和补码为 原码 补码 101011 110101 101010 110110 将上面的两个补妈相加后得到 110I01 +110110 0l011 和的符号位为1,表示和为负。 如果将和的补码再求补码,就得到了和的原码为110101(-21)。 1.2习题解答 【题L.1】为了将600份文件顺序编号,如果采用二进制代码,最少雷要用 儿位?如果改用八进制或六进制代码,则最少各需要用儿位? 解:因为9位一进制代码共有2=512个码,不够用;而10位二进制代码共 有2"=1024个码,大于600,采用二进制代码时最少需要十位 若将10位二进制代码转换为八进制和六进制代码,则各需要用4位和3位。 因此,如果改用八进制代码,则需要用4位;如果用六进制代码,则3位就够了。 【题1.2】将下列二进制整数转换为等值的十进制数。 (1)(101)2;(2)(10100)2;(3)(100101112:(4)(1010)2 解 (1)(01101)2=0×2+1×23+1×2+0×2+1×2°=13 (2)(10100)2=1×2+0×23+1×2+0×2+0×2=20 (3)(10010111)2=1×2+0×2+0×23+1×2+0×2+1x2+1×2+1×
1.2习魎解答7 (4)(101101)2=1×2+1×2+0×2+1×2+1×22+0×2+1×2 09 【题1.3】将下列二进制小数转换为等值的十进制数。 (1)(0.1001)2;(2)(0.0111)2;(3)(0.101101)2;(4)(0.00】11)2a 解 (1)(0.1001)2=1×2+0×22+0×2+1×2-0.5625 (2)(0.0111)2=0×2+1×22+1×2+1×2=0.4375 3)(0.101101)2=1×2-1+0×22+1×23+1×24+0×23+1×2 0.703125 (4)(0.00111)2=0×2+0×2+1×2+1×2+1×2+1×2 0.234375 【题1.4】将下列二进制数转换为等值的十进制数 (1)(101.011)2;(2)(110.101)2;(3)(111l11)2;(4)(1001.0101)2。 解 (1)(101.011)2=1×2+0×2+1×2+0×2+1×2+1×2 =5.375 (2)(10.101)2=1×22+1×2+0×2”+1×2+0×22+1×2 =6.625 (3)(111l11),=1×23+1×2+1×2'+1×2°+1×2+1×22+1 1×2 15.9375 (4)(1001.0101)2=1×2+0×2+0×2+1×2+0×2+1×2-+0 2-+1×2 9.3125 【题1.5】将下列二进制数转换为等值的八进制数和十六进制数。 (1)(110.0111)2;(2)(1001.1101)2;(3)(0110.100)2; (4)(101100.110011)2 解 (1)将(1110.011)2转换为八进制和「六进制数得到 (1110.0111) (1110.011l (00110.011100)2
8第一章数辋和码制 (2)将(100L1101)2转换为八进制和十六进制数得到 (1001.1l01) (1001.1101)2 (001001.1o100)2 (3)将(0110.1001)2转换为八进制和十六进制数得到 (011.1001)2 (0110.1001)2 110.100100)2 )1 (4)将(10110.010011)2转换为八进制和十六进制数得到 (1010.110011)2 (10100.1100I1)2 101100.110011)2 (00101100.1100100)2 63)8 【题1.6】将下列十六进制数转换为等值的二迸制数。 (1)(8C)16;(2)(3D.BE)6;(3)(8F.FF)16;(4)(10.00)1 解 (1)将(8C)中每一位十六进制数代之以等值的4位二进制数,得到 (8C) (10001100)2 (2)将(3DBE)中的每一位十六进制数代之以等值的4位二进制数, 得到 3 D. B E 00111101.10111110)2 (3)将(8F.F)中的每一位十六进制数代之以等值的4位二进制数,得到 (8 F (10001.1111111)2