+-
c# – 是否有一种简单的方法可以将32位整数转换为16位整数?
我有一个32位的int,我只想解决这个变量的下半部分.我知道我可以转换为位数组和int16,但还有更直接的方法吗?
最佳答案
你只想要下半部分,你可以把它投出:(Int16)my32BitInt

通常,如果您正在扩展/截断这样的位模式,那么您需要注意签名类型 – 无符号类型可能会导致更少的意外.

正如评论中所提到的 – 如果您已将代码包含在“已检查”上下文中,或者更改了编译器选项以使默认值为“已检查”,那么您不能截断这样的数字而不会抛出异常,如果有任何非零位被丢弃 – 在这种情况下你需要这样做:

(UInt16)(my32BitInt & 0xffff)

(在这种情况下,使用带符号类型的选项已经消失,因为你必须使用& 0x7fff然后只保留15位)

点击查看更多相关文章

转载注明原文:c# – 是否有一种简单的方法可以将32位整数转换为16位整数? - 乐贴网