设X=26/32,Y=--15/32,采用二进制变形补码计算[X+Y]补=? 并讨论计算结果。
要计算二进制变形补码的[X+Y]补,需先明确X、Y的二进制表示及变形补码规则(采用双符号位,正数符号位为00,负数为11),步骤如下:
步骤1:将X、Y转换为二进制小数
• X = 26/32 = 0.11010(二进制,因26=16+8+2=2⁴+2³+2¹,故0.11010)
• Y = -15/32 = -0.01111(二进制,15=8+4+2+1=2³+2²+2¹+2⁰)
步骤2:求X、Y的变形补码
变形补码(双符号位)规则:
• 正数:符号位为00,数值位不变;
• 负数:符号位为11,数值位取反加1。
• [X]补:X为正数,符号位00,数值位0.11010 → 00.11010
• [Y]补:Y为负数,先求数值位补码(0.01111取反为0.10000,加1得0.10001),符号位11 → 11.10001
步骤3:计算[X+Y]补 = [X]补 + [Y]补
二进制加法(小数点对齐,符号位参与运算): 00.11010 + 11.10001 ------------ 100.01011 结果为100.01011,双符号位取前两位(超出的高位符号位自然丢弃),得 00.01011
结果分析
• 双符号位为00,无溢出;
• 数值位0.01011对应十进制:0.01011×32 = 5/32,即X+Y=5/32,计算正确。
答案:[X+Y]补 = 00.01011,无溢出,结果正确。
0.01011
00.01011
00001011
[x]补=0 11010x2^(-5)
[y]补=1 10001x2^(-5)
[x+y]补=0 01001x2^(-5)
无溢出
编码小白 回复 编码小白: [x+y]补=0 01011x2^(-5)
纠正:应该是 0.01011 才对
admin 回复 IceClean: 感谢提醒,已修正
设X=26/32,Y=--15/3...
用户登录可进行刷题及查看答案
设X=26/32,Y=--15/32,采用二进制变形补码计算
[X+Y]补=? 并讨论计算结果。
解:X=0.11010 Y= - 0.01111
[X+Y]补=0.01011
登录后提交答案