“两个用补码表示的数相加时,如果在最高位产生进位,则表示运算溢出”是否正确?为什么?
问题描述:
“两个用补码表示的数相加时,如果在最高位产生进位,则表示运算溢出”是否正确?为什么?
答
错误,
对于整数来说溢出就是超出类型所能表示的范围.比如对于无符号整数0 - 1就会溢出.而对于16位带符号整数-32768 - 1会溢出.
这里存在一个问题就是一般CPU不会区分你的运算是否带符号,因为不管带不带符号,运算方法都是一样的.也就是说两种溢出都需要考虑,为了区分,无符号整型的溢出就被称作进位了.
这样可以明白吗?你在学c语言?