C++ 既有无符号数又有int值时,先把int值转为无符号数(和int值直接赋给无符号值一样),最后再相加
#include <iostream> int main() { unsigned u = 10; int i = -42; std::cout << i + i << std::endl; //输出结果为-84 std::cout << i + u << std::endl; // i 转换为无符号整形为 2^32 + [(-42)*(-1)/2^32]*2^32 + (-42) = 4294967254, 所以最后结果为 4294967254 + 10 = 4294967264 std::cin >> i ; return 0; }