将较小的整数类型赋值给较大的整数类型是否不安全?

Can assigning smaller integer type to a larger integer type be unsafe?

本文关键字:整数 类型 是否 不安全 赋值      更新时间:2023-10-16

除了有符号和<0和大于0是无符号的,有没有其他情况下,将较小的int类型赋值给较大的int类型可能是不安全的?

据我所知,将较小的整数类型赋值给较大的整数类型是没有问题的。

我认为没有。因为大类型可以容纳小类型的所有位信息。唯一的问题可能是有符号/无符号的东西(因为它总是在混合有符号和无符号的情况下)。但你可以随时取回原始值。无信息丢失

signed short s = -1;
unsigned int i = s;
signed short originalValue = (signed short)i;
cout << s << endl;
cout << i << endl;
cout << originalValue  << endl;
输出:

-1
4294967295
-1

在线演示:http://ideone.com/z3G9x