从int16_t转换为uint32_t

Conversion from int16_t to uint32_t

本文关键字:uint32 转换 int16      更新时间:2023-10-16
int16_t s;
uint32_t ui = s;

int16_t值转换为uint32_t值编译器的结果是否取决于?如果没有,规则是什么?

结果定义明确;非负值保持不变,负值减少模 2^32。但是,需要精确大小的类型(如int16_tuint32_t)的情况非常罕见。这里真的不需要除了intunsigned long之外的任何东西:这些类型至少具有与int16_tuint32_t一样多的位,并且与int16_tuint32_t不同,它们需要存在于任何符合的实现中。如果你真的想要性感的新尺寸类型,至少要去 int_least16_tuint_least32_t的便携性。