《微机原理》习题2 (P40)参考答案2.1为什么说计算机只能“识别”二进制数,并且计算机内部数的存储及运算也都采用二进制?解:因为二进制是计算机刚出现时就奠定的计算机内的进位记数制,之所以选用它来表示计算机内的信息,是因为两个状态的物理器件容易制造和实现,将这两个状态抽象为数字就可用0、1来表示;此外,采用二进制的运算规则较为简单,容易实现。
2.2在进位记数制中,“基数”和“位权(或权)”的含义是什么?一个以b为基数的任意进制数N,它按位权展开式求值的一般通式是如何描述的?解:在进位记数制中,常常要用“基数”(或称底数)来区别不同的数制,而进位制的基数就是该进位制所用的字符或数码的个数。
在一个进位记数制中,每一位都有特定的权,称为位权或简称权。
每个位权由基数的 n次幂来确定。
数N的按位权展开式的一般通式为:N=±(ki×b i)式中,ki为第i位的数码;b为基数;b i为第位的位权;n为整数的总位数;m 为小数的总位数。
2.3将下列十进制数分别转化为二进制数。
(1)147 (2)4095 (3)0.625 (4) 0.15625解:(1) 147 D=10010011 B(2) 4095 D=111111111111 B(3) 0.625 D=0.101 B(4) 0.15625 D=0.00101 B2.4将下列二进制数分别转换为BCD码。
(1)1011 (2) 0.01 (3) 10101.101 (4) 11011.001解:(1) 1011 B=1×23+0×22+1×21+ 1×20=11 D=(0001 0001)BCD(2) 0.01 B=1×2-2=0.25 D=(0.0010 0101)BCD(3) 10101.101 B =1×24+1×22+1×20+1×2-1+1×2-3 =21.625 D=(0010 0001.0110 0010 0101)BCD(4) 11011.001B=1×24+1×23+1×21+1×20+1×2-3=27.125D=(0010 0111.0001 0010 0101)BCD2.5将下列二进制数分别转换为八进制数和十六进制数。
(1)10101011B (2)1011110011B (3)0.01101011B (4) 11101010.0011B解:(1) 1010 1011B=253Q=ABH(2) 10 1111 0011B=1363Q=2F3H(3) 0.0110 1011B=0.326Q=0.6BH(4) 1110 1010.0011B=352.14Q=0EA.3H2.6选取字长n为8位和16位两种情况,求下列十进制数的原码。
(1)X=+63 (2)Y=-63 (3)Z=+118 (4)W=-118解: (1) [X]原= [+63]原=0011 1111=0000 0000 0011 1111(2) [Y]原= [-63]原=1011 1111=1000 0000 0011 1111(3) [Z]原= [+118]原=0111 0110=0000 0000 0111 0110(4) [W]原= [-118]原=1111 0110=1000 0000 0111 01102.7选取字长n为8位和16位两种情况,求下列十进制数的补码。
(1)X=+65 (2)Y=-65 (3)Z=+127 (4)W=-128 解:(1) [X]补=[+65]补=0100 0001=0000 0000 0100 0001(2) [Y]补=[-65]补=1011 1111=1111 1111 1011 1111(3) [Z]补=[+127]补=0111 1111=0000 0000 0111 1111(4) [W]补=[-128]补=1000 0000=1111 1111 1000 0000 2.8已知数的补码表现形式如下,分别求出数的真值与原码。
(1)[X]补=78H (2)[Y]补=87H (3)[Z]补=FFFH (4)[W]补=800H 解:(1) ∵[X]补=78H=0111 1000 B ∴ [X]原=0111 1000 B=78H 真值X=120 D(2) ∵[Y]补=87H=1000 0111 B ∴ [Y]原=1111 1001 B=0F9H 真值Y=-121 D(3) ∵[Z]补=FFFH=1111 1111 1111 B (假设为12位补码)∴[Z]原=1000 0000 0001 B=801H 真值Z=-1 D(4) ∵[W]补=800H=1000 0000 0000 B (假设为12位补码)∴[W]原=不存在 W 的真值 = -211= -2048 D2.9设字长为16位,求下列各二进制数的反码。
(1)X=00100001B (2)Y=-00100001B (3)Z=010*********B (4)W=-010*********B 解:(1) ∵X= 0010 0001B=0000 0000 0010 0001B ∴[X]反=0000 0000 0010 0001B (2) ∵Y=-0010 0001B=1000 0000 0010 0001B ∴[Y]反=1111 1111 1101 1110B (3) ∵Z=0101 1101 1011B=0000 0101 1101 1011B ∴[Z]反=0000 0101 1101 1011B (4) ∵W=-0101 1101 1011B=1000 0101 1101 1011B ∴[W]反=1111 1010 0010 0100B2.10下列各数均为十进制数,试用8位二进制补码计算下列各题,并用十六进制数表示机器运算 结果,同时判断是否有溢出。
(1)(-89)+67 (2)89-(-67) (3)(-89)-67 (4)(-89)-(-67) 解:(1) [-89]补 = 1010 0111 (2) [89]补 = 0101 1001 + [ 67 ]补 = 0100 0011 - [-67]补 = 1011 1101 [-89]补+[ 67 ]补= 1110 1010=[-16H]补 [89]补- [-67]补 = 1001 1100=[-64H]补∴(-89)+67=-22=-16H ∴ 89-(-67)=156 无溢出 有溢出(3) [-89]补 = 1010 0111 (4) [-89]补 = 1010 0111- [ 67 ]补 = 0100 0011 - [-67]补 = 1011 1101[-89]补-[ 67 ]补= 0110 0100=[64H]补 [-89]补- [-67]补 = 1110 1010=[-16H]补∴(-89)-67=-156 ∴ (-89)-(-67)= -16H=22 有溢出 无溢出2.11 分别写出下列字符串的ASCII 码。
(1)17abc (2)EF98 (3)AB$D (4)This is a number 258解:(1) 17abc 的ASCII 码为 00110001 00110111 01100001 01100010 01100011B或31H 37H 61H 62H 63H(2) EF98的ASCII 码为 01000101 01100110 00111001 00111000B 或45H 66H 39H 38H(3) AB$D 的ASCII 码为 01000001 01000010 00100100 01000100B 或41H 42H 24H 44H (4) This is a number 258的ASCII 码为:54H 68H 69H 73H 20H 69H 73H 20H 61H 20H 6EH 75H 6DH 62H 65H 72H 20H 32H 35H 38H 2.12设X=87H ,Y=78H ,试在下述两种情况下比较两数的大小。
(1)均为无符号数 (2)均为带符号数(设均为补码) 解:(1) ∵X=87H=1000 0111B=135D Y=78H=0111 1000B=128D∴ X>Y(2) ∵ X=87H=1000 0111B 为负数, Y=78H=0111 1000B 为正数∴ X<Y2.13选取字长n 为8位,已知数的原码表示如下,求出其补码。
(1)[X]原=01010101 (2)[Y]原=10101010 (3)[Z]原=11111111 (4)[W]原=10000001 解:(1) [X]补=0101 0101 (2) [Y]补=1101 0110 (3) [Z]补=1000 0001 (4) [W]补=1111 1111 2.14设给定两个正的浮点数如下N 1=2P1×S1N2=2P2×S2(1)若P1>P2是否有N1>N2?(2)若S1和S2均为规格化的数,且P1>P2,是否有N1>N2?解:(1) ∵S1和S2可以是纯小数,也可以是纯整数∴不一定有N1>N2(2) 有N1>N22.15 设二进制浮点数的阶码有3位、阶符1位、尾数6位、尾数1位,分别将下列各数表示成规格化的浮点数(补码表示)。
(1)X=1111.0111 B (2)Y=-1111.01011 B (3)Z=-65/128 (4)W=+129/64解:(1) X=1111.0111B=2+100×0.11110111=20100×0.111101110 1 0 0 0 1 1 1 1 0 1(2) Y=-1111.01011B=2+100×-0.111101011B=20100×1.0000101010 1 0 0 1 0 0 0 0 1 0(3) Z=-65/128=-0.5078125=-0.1000001B=2+000×-0.1000001=20000×1.01111110 0 0 0 1 0 1 1 1 1 1(4) W=+129/64=+2.015625=10.000001B=2+010×0.100000010 0 1 0 0 1 0 0 0 0 02.17 阐述微型计算机在进行算术运算时,所产生的“进位”与“溢出”二者之间的区别。
解:“进位”与“溢出”的区别可以从两个方面讨论:(1)从定性的方面:任一个计数装置(如算盘、电子计算器,二进制的计数器等)都有固定的字长,其所记数据都有一定的表示范围。