海明码
循环冗余码
浮点数
浮点数的表示形式
其中,M为浮点数的尾数,一般为纯小数,在机器中通常采用补码表示;E为阶码,为纯整数,用补码或移码表示。浮点数的取值范围由阶码的位数决定,而精度由尾数的位数决定。
浮点数的加减运算
对阶
↓
尾数运算
↓
结果规格化
↓
舍入处理
↓
溢出判断
对阶
X=Mx·2Ex,Y=My·2Ey
结果规格化
规格化操作包括左规和右规两种情况。
- 左规操作:|尾数| <
时,需要左规,即尾数左移1位,阶码-1,左规可能多次,直到尾数变为规格化形式。
- 右规操作:尾数溢出时,需要右规(1次),即尾数右移1位,阶码+1,便成为规格化的形式了。因为参加运算的是规格化浮点数(尾数的绝对值在
和1之间)。
- 左归可能需要多次,右归仅需一次。
将十进制数15/2表示成二进制浮点规格化数(阶符1位,阶码2位,数符1位,尾数4位)是
01101111。 7.5化成二进制是111.1=0.1111*;阶码是3即1;为正数,故阶符为0;尾数为0.1111 用1111表示。拼接后为 0 11 0 1111 ,即01101111。
12位浮点数,阶码4位,包含1位阶符,尾数8位,包含1位数符,阶码、尾数都用补码表示,阶码在前,尾数(包括数符)在后,已知: X=(-0.1001011)×2001,Y=0.1100101×2-010,求Z=X+Y。
请计算后按要求填写答案。
(1) X的机器码是1B5H。(用十六进制表示,记得在数字后要有表示十六进制的符号H)。
(2) Y的机器码是E65H。(用十六进制表示,记得在数字后要有表示十六进制的符号H)
(3) 对阶。Ex-Ey=3>0。将Y的位数右移3位,阶码加3.则Y的机器码是10CH。(用十六进制表示,记得在数字后要有表示十六进制的符号H)。
(4) 尾数相加后的结果是1.1000001。(用二进制补码表示)。
(5) 结果规格化。结果不是规格化。将其左规一位,阶码减1后,尾数的结果是1.0000011。(用二进制补码表示)。
(6) 按第(5)步规格化的阶码结果是0000。(用二进制补码表示)。
(7) 舍入。按照0舍1入法,舍去尾数多余位,结果为083H。(用十六进制表示,记得在数字后要有表示十六进制的符号H)。
已知 X 和 Y, X=-1000, Y=+1001,用变形补码计算X+Y和X-Y,并判断是否有溢出,如有溢出并指明是正溢出还是负溢出? (提醒:分隔符逗号用半角的逗号)
解答:
[1] X补=_____。
[2] Y补=_____。
[3] (-Y)补=_____。
[4] [X+Y]补=X补+Y补=_____。
[5] 结果_____(填写有或无)溢出。
[6] X+Y =_____。
[7] [X-Y]补=X补+(-Y)补=10,1111。
[8] 结果_____(填写正或负)溢出。X-Y无值。
假设某规格化浮点数的尾数表示形式为M0.M1 …… Mn,若尾数用原码表示,则尾数必须满足M1=1。
溢出判断
分为1,00111和1.10100。为定点整数、小数,逗号和小数点前的均为符号位。
5.计算机中表示内存地址时应该使用无符号数。
6.在补码一位乘法中,A补是累加和,X补是被乘数,Y补是乘数,当判断YnYn+1=01时,执行的运算时1/2(A补+X补)。
8.设X=0.1001,Y=-0.0101,则[X/2]补,[2Y]补的值是[X/2]补=0.0100,[2Y]补=1.0110。
10.8421码就是二进制数。(×)
11.在所有的进位计数制中,整数部分最低位的权都是1。(√)
处在某一位上的“l”所表示的数值的大小,称为该位的位权
12.任意两数之差的补码等于被减数的补码与减数的补码相加之和。(×)
两数之差的补码等于被减数的补码与减数相反数的补码。
程序顺序执行如下两条指令, MOV AL,7FH,SUB AL,1 则运算结果及其标志位分别是运算结果是7EH,CF=0,ZF=0,SF=0,OF=0,PF=1。
设[X]补=X0.X1……Xn,X 必须满足X0.X1=0.1条件时,X 左移一位求 2X 时,会发生溢出。
原码一位乘法中,参加运算的两个乘数是绝对值参加乘法运算。(√)
8421BCD码进行加法运算,当结果大于9时,需要加6校正。否则,不需要。(√)
编码:8421 BCD码(彻底弄懂+6是什么意思,为什么要加6)_8421码为什么要加6修正_Tomorrowave的博客-CSDN博客
变形补码加减运算结果的两个符号位相同时发生溢出。(√)变形补码又称双符号位补码
计数制中使用的数据个数被称为基数。
设X= 0.1101,则[X]补 =0.1101。注意有小数点
标志寄存器用来保存ALU操作结果的某些状态。
浮点数结果向右规格化的规则为:将尾数连同符号位一起__向右移一位_____,然后左边补上一位与最高位相同的位,再将阶码___加一____。
在补码加减法中,符号位作为数的一部分参加运算,但是符号位产生的进位要丢弃。
采用单符号位进行溢出检测时,若加数与被加数符号相同,而运算结果的符号与操作数的符号不同,则表示溢出。当加数与被加数符号不同时,相加运算的结果不会溢出。(答案请用中文填写)
在原码一位乘法中,符号位和数值位分开运算,运算结果的符号等于被乘数和乘数的符号异或。
补码
机器数的移位运算
计算机中的移位运算分为:
加减运算
在定点二进制运算器中,减法运算一般是通过补码运算的二进制加法器来实现的。
求补规则是将[Y]补包括符号位在内每一位取反,末位加1。(√)
乘法运算
在补码一位乘法中,A补是累加和,X补是被乘数,Y补是乘数,当判断YnYn+1=01时,执行的运算时1/2(A补+X补)。
溢出判断
机器数的移位运算
某字长为8位的计算机中,已知整型变量x,y的机器数分别为[X]补=11110100,[y]补=10110000,若整型变量z=2*x+y/2,则z的机器数为11000000。
1 10000011 10010010000000000000000 -25.125 1 10000110
00001111010000000000000 C307A000