收到错误 CS0031:常量值“65535”无法转换为“短”
本文关键字:转换 65535 CS0031 常量 错误 | 更新日期: 2023-09-27 18:30:20
我在这一行收到上述错误:
Int16 maskBits = 0xFFFF;
我这样做是因为我正在使用用C++编写的Box2D库。它在这里说:
"类别位的默认值0x0001,掩码位的默认值0xFFFF"
我认为0xFFFF或 65535 是Int16
的最大值?
编辑:应该是UInt16 duuh!! 谢谢大家!
0xFFFF用于UInt16。对于 Int16,最大值为 32767。
0xFFFF
肯定不是 16 位有符号文字,它至少(取决于您的语言:您标记了一对)32 位,值为 65535。转换为有符号 16 位有符号数字将失败,因为最大值为 32767。
int16 的最大值为 32767,这是0x7FFF
int16
的最大值为签名时的 32767(最小值为 -32768)
您需要一个uint16
类型(因为它是无符号的)。这将为您提供最大值 65535(即 0xFFFF)和最小值 0。