我知道以下
unsigned short b=-5u;
由于下溢,评估为 b 为 65531,但我不明白 5u 是否在转换为 -5 之前转换为有符号整数,然后重新转换回无符号以存储在 b 或 -5u 等于 0 - 5u(不应该是这种情况,-x 是一元运算符)
最佳答案
5u
是一个文字无符号整数,-5u
是它的否定。 无符号整数的否定定义为从 2**n 中减去,它得到的结果与从零开始的减法结果相同。
关于c++ - 无符号下溢机制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15172936/