Csharp/C#教程:如何在C#中将3个字节转换为24位数?分享


如何在C#中将3个字节转换为24位数?

我有一个字节数组,我从消息的标题部分读取。 这些字节包含消息的长度。 从不超过3个字节,它们从LSB到MSB排序。 因此在下面的示例中,39是LSB,2是MSB。

var data = new byte[] { 39, 213, 2 }; 

在上面的例子中,我如何获取这些字节并转换为数字(int,short等)?

 var num = data[0] + (data[1] << 8) + (data[2] << 16); 

使用像BitConverter.ToInt32这样的方法,但要意识到32位数量需要4个字节。

 var data = new byte[] {39, 213, 2, 0}; int integer = BitConverter.ToInt32(data, 0); 

还有其他方法可以转换为其他类型,如Single和Double 。

使用左移运算符和or运算符:

 int d = (data[2] << 16) | (data[1] << 8) | data[0] 

显然,你可以在这里做各种各样的事情,比如使用循环等:)

像这样的东西应该工作:

 data[0] + 256*data[1] + 256*256*data[2] 

您的编译器应该将其优化为“正确”位操作。

BitConverter为您处理字节序,这就是为什么它要走的路。

虽然你需要4个字节,但是

上述就是C#学习教程:如何在C#中将3个字节转换为24位数?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!

 BitConverter.ToInt32(new byte[1] { 0 }.Concat(yourThreeByteArray).ToArray()); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/990650.html

(0)
上一篇 2021年12月24日
下一篇 2021年12月24日

精彩推荐