C语言的整数溢出机制
总结C语言的整数溢出机制
整数溢出机制的分类
- 无符号
- 有符号
无符号整数溢出处理机制
在C标准中,这类整数溢出机制是得到了具体的定义的。公式为:
1 | |
有符号整数溢出机制
这里溢出在标准中没有被定义,但是各个编译器的实现是差不多的:
如果是正向溢出(就是大于可以表示的最大的整数)其被当成了一个负数,则-1然后取反,如果是反向溢出则取反然后+1
当x比2^type的位数还要大时,只取低2^type的位数位,2^type的位数是类型的位数。如:
1 | |
参考资料
C语言的整数溢出机制
https://ysc2.github.io/ysc2.github.io/2023/12/12/C语言的整数溢出机制/