为什么5U和-5U的输出不同

Why the output of 5u and -5u are different?

本文关键字:输出 -5U 5U 为什么      更新时间:2023-10-16
cout<<-5u

它给出输出:65531为什么?

cout<<5u 

它只给出输出5那么为什么输出是不同的-5U不能给出-5输出的原因。

在C 无符号整数中的下流和溢出以明确的方式(适用于签名的整数(。特别是,算术操作是mod 2^n,其中n是代表unsigned int的位数。-5u等于0u - 5u等于(0u - 1u) - 4u0u - 1u给出UINT_MAX(或std::numeric_limits<unsigned>::max()(,即65535。因此,您有-5u = 65535 - 4 = 65531