C语言中无符号数运算判断溢出

时间:2022-09-08 02:14:38
对于无符号加法运算,当执行C程序时,不会将溢出作为错误而发信号。例如要计算s = x + y;如果溢出则会得到结果s = (x + y) %2 w或者s = x + y - 2 w(w 是机器中无符号的最大二进制位数)。又因为x < 2 w且y < 2 w,所以可以用if(s < x) 或if(s < y)来判断计算结果是否溢出。