c# - 在 C# 中将 ushort 值转换为两个字节值

标签 c# byte boolean-logic ushort

如何在 C# 中将一个 ushort 拆分为两个字节变量?

我尝试了以下(package.FrameID 是 ushort):

当我尝试用纸和铅笔计算时,我得到了正确的结果。此外,如果 FrameID 大于一个字节(因此第二个字节不为零),它也有效。

array[0] = (byte)(0x0000000011111111 & package.FrameID);
array[1] = (byte)(package.FrameID >> 8);

在我的例子中,package.FrameID 是 56,array[0] 中的结果是 16 而不是 56。

我该如何解决这个问题?

最佳答案

使用BitConverter

var bytes = BitConverter.GetBytes(package.FrameID);

关于c# - 在 C# 中将 ushort 值转换为两个字节值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18587611/

相关文章:

c# - 将气球工具提示定位在树节点上

c# - 生成日期时间(exp:09.02.2009)到字符串日期(exp:Monday)

python - 如何限制用于存储整数的内存量?

c++ - 如果在 C 中将 int 传递给 byte 参数会发生什么?

c - 如何存储可以初始化为整数或 float 的通用四个字节

haskell - LiquidHaskell : failing DeMorgan's law

python - 如何测试多个变量与单个值的相等性?

c# - 循环正则表达式匹配

c# - 获取 XElement 的 XPath?

java && on if语句不起作用