c++中有符号到无符号的转换

Signed to unsigned conversion in C++

本文关键字:无符号 转换 符号 c++      更新时间:2023-10-16

在c++中,有符号整数值转换为无符号整数值的结果,可以是两种不同的大小(例如:short intunsigned long long int,或long long intunsigned char)是否由标准和平台独立定义(例如,无论如何表示有符号整数值)?

是的,该值是定义的并且独立于所使用的表示。(conv.integral)/2:

如果目标类型为无符号,则结果值最小与源整数相等的无符号整数(模2n其中n是用来表示unsigned类型的位数)

显然,目标类型的大小很重要;long longunsigned char的值可能与long longunsigned int的值不同