收到错误 CS0031:常量值“65535”无法转换为“短”

本文关键字:转换 65535 CS0031 常量 错误 | 更新日期: 2023-09-27 18:30:20

我在这一行收到上述错误:

Int16 maskBits = 0xFFFF;

我这样做是因为我正在使用用C++编写的Box2D库。它在这里说:

"类别位的默认值0x0001,掩码位的默认值0xFFFF"

我认为0xFFFF或 65535 是Int16的最大值?

编辑:应该是UInt16 duuh!! 谢谢大家!

收到错误 CS0031:常量值“65535”无法转换为“短”

0xFFFF用于UInt16。对于 Int16,最大值为 32767。

0xFFFF肯定不是 16 位有符号文字,它至少(取决于您的语言:您标记了一对)32 位,值为 65535。转换为有符号 16 位有符号数字将失败,因为最大值为 32767。

int16 的最大值为 32767,这是0x7FFF

int16的最大值为签名时的 32767(最小值为 -32768)

您需要一个uint16类型(因为它是无符号的)。这将为您提供最大值 65535(即 0xFFFF)和最小值 0。