-1有补码无原码
。
31用32-1表示即25-1即100000-1为11111
补码换到移码符号位取反即可
尾数的绝对值<=1,阶码是整数
。
r=2:尾数当中每一位二进制数表示了尾数中的一位2进制数。
r=4:尾数当中的两位二进制数表示一位4进制的尾数
r=8:尾数中的三位二进制数表示一位8进制的尾数
r=16:4位二进制数表示一位16进制数
当r=2 N=11.0101——>=0.110101×210因为右移两位数据,数据本身大小变为原来的1/4,则阶码部分变为10,10是二进制表示即十进制中的2即22即就是4
N=0.00110101×2100小数点往左移了四位,变为原来的1/16,阶码中而二进制中的100就是4.即24=16
二进制:-11,-10,-1,0,1,10,11
r=2——>左规:数据向左移动;右规:数据向右移动,数据值变为原来的1/2
19=16+2+1即10011
19/128即将10011除128,128=27即10011数据相对于小数点右移7位;每移一位相当于除以2。变为0.0010011
浮点机当中用分号将阶码和尾数隔开
对于计算机来说,都是数据移动而小数点的位置不变
左移一位,机器数的真值变为原来的2倍;右移变为原来的1/2倍,有时可能因为低位丢掉影响了精度
左移最高位会被丢掉,最低位补;
右移最低位丢掉,符号位的下一位高位补
即空出的地方补
左移一位,真值变为原来的2倍
对于正数,三种机器数移位后符号位均不变,左移时最高位丢1,结果出错;右移时最低位丢1,影响精度。
负数原码左移时,高位丢1,结果出错,右移时,低位丢1,影响精度
负数的补码左移时,高位丢0(原码的1),结果出错;右移时,低位丢1,影响精度
第一行第四个:左移——>负数的反码最低位添1,最高位丢掉,符号位不变
第二行第四个:右移——>负数的反码最高位添1,最低位丢掉
算数移位符号位不参与移位运算,逻辑移位全部参与移位运算
可以用带进位的移位将丢掉的最高位记录在进位中
符号位产生的进位自动丢掉
由[A+B]补求A+B——>直接将[A+B]补取反末位加1
== -B的补码=将B的补码数值位每位取反,末位加1==
练习一:在小数定点机中计算结果为大于1的数发生溢出
练习二:整数定点机中机器字长为8位计算结果-138超出了这种机器所能表示的范围(-128~127),发生上溢
当两位符号位不同,表示溢出。不论是否发生溢出,高位符号位表示真正的符号。
双符号位的模可以变为2n+2
GA,GS标记做加法、减法。
在整数定点机中,机器数采用补码,双符号位,若它的十六进制表示为C0H,则它的真值为(-64)。
移位次数控制乘法操作的结束
乘数最后一位为1,部分积+X,右移一位
乘数最后一位为0,部分积+0,右移一位
最后符号位异或
- 第三列为附加位,开始的时候此位=0.
- 比较第三列和第二列最后一位(0-1=-1),则需要加上[-x]补再右移(因为是补码则算数右移),此时补码是负数右移补1。等等依次类推步骤
- 第二行第一列,蓝色的1是由于此时补码是负数右移补1
- 第三行第一列,蓝色的0是由于此时补码是正数右移补0
- 到第五行,0-1=-1则加上[-x]补。
得到结果,此时不用再移位——>最后一步不移位
。
[X.Y]中Y为负数,加上[-x]补;Y是正数则不用
符号位参与运算,得到的也是补码形式
被乘数x取双符号参与运算,部分积初值为0。
乘数y取单符号位,乘数y末位增加一个附加位0.
判断y的最后两位:
若不满足约定,即,小数定点运算中被除数的绝对值>除数的绝对值,(即第一步发现上商为1)——>发生溢出
整数定点除法中被除数的绝对值>除数的绝对值,则发生了溢出
余数>0,上商为1,余数左移一位并加上[y*]补除数
余数<0,上商为0,余数左移一位并加上[-y*]补除数
最后符号位异或
余数[Ri]补与[y]补同号——>上商为1,新余数左移一位+[-y]补
余数[Ri]补与[y]补异号——>上商为0,新余数左移一位+[y]补
最后一步,左移一位,末位商恒置1
浮点运算的特点:阶码(指数)运算和尾数(基值)运算分开进行
尾数左移并不合适
.
4位尾数)