求大佬讲解

孤远无梦 2021-01-22 12:55:55
某字节长为8位的计算机中,已知整型变量x,y的机器数分别为

[x]补 = 11110000

[y]补 = 10111000

z = 4*x+y/2

则z的机器数为?

答案给溢出,我算没有溢出,请问该怎么算?

...全文
330 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤远无梦 2021-01-22
  • 打赏
  • 举报
回复
谢谢各位大佬
孤远无梦 2021-01-22
  • 打赏
  • 举报
回复
引用 8 楼 qybao 的回复:
[quote=引用 5 楼 我当时害怕极了QAQ 的回复:] 老师,我晕了 8位整形范围不是-128到127吗 -100咋溢出了呢
溢出应该是不以表示范围来判断的,正因为它溢出,所以才保证了它的值还在范围里 比如 0x7FFFFFFF(4位int的最大值) + 1 = 0x80000000 (变为负数) 这个负数也在 0x80000000到0x7FFFFFFF的范围里,那它算不算溢出? [/quote] 明白了,应该用和的补码判断溢出 我直接算原码的和了 就是没有判断溢出。。。
forever74 2021-01-22
  • 打赏
  • 举报
回复
四楼的四老师已经生动证明了,溢出和出错是两回事。溢出并不必然伴随着出错。 回想你八岁的时候,溢出了一颗牙齿,太正常了。
qybao 2021-01-22
  • 打赏
  • 举报
回复
引用 5 楼 我当时害怕极了QAQ 的回复:
老师,我晕了 8位整形范围不是-128到127吗 -100咋溢出了呢
溢出应该是不以表示范围来判断的,正因为它溢出,所以才保证了它的值还在范围里 比如 0x7FFFFFFF(4位int的最大值) + 1 = 0x80000000 (变为负数) 这个负数也在 0x80000000到0x7FFFFFFF的范围里,那它算不算溢出?
  • 打赏
  • 举报
回复
溢出是针对有符号数的,无符号数是进位/借位
liups 2021-01-22
  • 打赏
  • 举报
回复
题目有点问题,没有明确是有符号还是无符号的
孤远无梦 2021-01-22
  • 打赏
  • 举报
回复
引用 4 楼 赵4老师 的回复:
x表示-16 y表示-72 z=4*x+y/2 =4*(-16)+(-72)/2 =-100 4*x=1100 0000 //符号位是1,说明是负数,保留符号位,左移2位(低位补0)表示-64 y/2=1101 1100 //符号位是1,保留符号位,右移1位(高位补1)表示-36 相加结果,1 1001 1100虽然有溢出,但取其低8位,1001 1100 表示-100,结果正确。
老师,我晕了 8位整形范围不是-128到127吗 -100咋溢出了呢
赵4老师 2021-01-22
  • 打赏
  • 举报
回复
x表示-16 y表示-72 z=4*x+y/2 =4*(-16)+(-72)/2 =-100 4*x=1100 0000 //符号位是1,说明是负数,保留符号位,左移2位(低位补0)表示-64 y/2=1101 1100 //符号位是1,保留符号位,右移1位(高位补1)表示-36 相加结果,1 1001 1100虽然有溢出,但取其低8位,1001 1100 表示-100,结果正确。
孤远无梦 2021-01-22
  • 打赏
  • 举报
回复
引用 1 楼 qybao 的回复:
4*x=1100 0000 //符号位是1,说明是负数,保留符号位,左移2位(低位补0) y/2=1101 1100 //符号位是1,保留符号位,右移1位(高位补1) 相加结果,11001 1100,说明溢出了,其实只需要看两个操作数的符号位紧接着的1位是不是都是1,就能判断是否会溢出了
大佬,y/2我算的不一样 不应该是由(y补)先算y = 11001000 y/2 = 10100100吗
  • 打赏
  • 举报
回复
要看它的整型长度多少,如果只有1字节的话,肯定溢出了
qybao 2021-01-22
  • 打赏
  • 举报
回复
4*x=1100 0000 //符号位是1,说明是负数,保留符号位,左移2位(低位补0) y/2=1101 1100 //符号位是1,保留符号位,右移1位(高位补1) 相加结果,11001 1100,说明溢出了,其实只需要看两个操作数的符号位紧接着的1位是不是都是1,就能判断是否会溢出了

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧