作业帮 > 综合 > 作业

求32位有符号2进制数加法运算详细解答

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/05 08:06:46
求32位有符号2进制数加法运算详细解答
A的补数16进制形式=0000007FH,B的补数16进制形式=FFFFFFF7H
A+B=?
其中A和B都是有符号的
其实这道题的原题是:
一个C语言程序在一台32位机器上运行.程序中定义了三个变量x、y和z,其中x,z为int型.当x=127,y=-9 时,执行赋值语句z=x+y后,x、y和z的值分别是().
求解题思路和答案(注:在计算机里执行运算时,一般数据都采用补码表示)
求32位有符号2进制数加法运算详细解答
X=127D=0000 0000 0000 0000 0000 0000 0111 1111B=0000007FH
9D=0000 0000 0000 0000 0000 0000 0000 1001B
Y=-9D=1111 1111 1111 1111 1111 1111 1111 0111B=FFFFFFF7H
故Z=X+Y=0000007FH+FFFFFFF7H
0000 007FH
FFFF FFF7H
7654 3210
0号位 F+7=6进1(0号位为6)
1号位 7+F+1=7进1(1号位为7)
2号位 0+F+1=0进1(2号位为0)
3号位 0+F+1=0进1(3号位为0)
4号位 0+F+1=0进1(4号位为0)
5号位 0+F+1=0进1(5号位为0)
6号位 0+F+1=0进1(6号位为0)
7号位 0+F+1=0进1(7号位为0)
7号位加完了还有个进1 但因为是在32位机器上运行 故寄存器最多同时存储了32位 进1位会溢出丢失

Z=X+Y=00000076H
注:计算机运算出来的值并不是真实的值 因为产生了溢出故障 导致了计算机只能显示Z=00000076H

X=0000007FH
Y=FFFFFFF7H
Z=00000076H