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

Getting error CS0031: Constant value `65535' cannot be converted to a `short'

本文关键字:65535 转换 错误 CS0031 常量      更新时间:2023-10-16

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

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。