+-
我有一个32位的int,我只想解决这个变量的下半部分.我知道我可以转换为位数组和int16,但还有更直接的方法吗?
最佳答案
你只想要下半部分,你可以把它投出:(Int16)my32BitInt
通常,如果您正在扩展/截断这样的位模式,那么您需要注意签名类型 – 无符号类型可能会导致更少的意外.
正如评论中所提到的 – 如果您已将代码包含在“已检查”上下文中,或者更改了编译器选项以使默认值为“已检查”,那么您不能截断这样的数字而不会抛出异常,如果有任何非零位被丢弃 – 在这种情况下你需要这样做:
(UInt16)(my32BitInt & 0xffff)
(在这种情况下,使用带符号类型的选项已经消失,因为你必须使用& 0x7fff然后只保留15位)
点击查看更多相关文章
转载注明原文:c# – 是否有一种简单的方法可以将32位整数转换为16位整数? - 乐贴网