无符号签名的下溢机制

Joh*_*ing 4 c c++

我知道以下内容

unsigned short b=-5u;
Run Code Online (Sandbox Code Playgroud)

由于下溢而评估为b为65531,但我不明白5u是否在转换为-5之前转换为有符号int,然后重新转换回无符号以存储在b或-5u中等于0 - 5u(不应该是这种情况,-x是一元运算符)

jth*_*ill 5

5u是一个无符号整数,-5u是它的否定.无符号整数的否定定义为从2**n减去,它得到的结果与从零包装减法结果相同.