[quote=引用 5 楼 我当时害怕极了QAQ 的回复:] 老师,我晕了 8位整形范围不是-128到127吗 -100咋溢出了呢
老师,我晕了 8位整形范围不是-128到127吗 -100咋溢出了呢
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,结果正确。
4*x=1100 0000 //符号位是1,说明是负数,保留符号位,左移2位(低位补0) y/2=1101 1100 //符号位是1,保留符号位,右移1位(高位补1) 相加结果,11001 1100,说明溢出了,其实只需要看两个操作数的符号位紧接着的1位是不是都是1,就能判断是否会溢出了
69,382
社区成员
243,073
社区内容
加载中
试试用AI创作助手写篇文章吧