我有一个字节数组,我从消息的标题部分读取.这些字节包含消息的长度.从不超过3个字节,它们从LSB到MSB排序.所以在下面的例子中,39是LSB,2是MSB.
var data = new byte[] { 39, 213, 2 };
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我如何获取这些字节并转换为数字(int,short等)?
Cha*_*ion 14
var num = data[0] + (data[1] << 8) + (data[2] << 16);
Run Code Online (Sandbox Code Playgroud)
使用像BitConverter.ToInt32这样的方法,但是要意识到32位数量需要4个字节.
var data = new byte[] {39, 213, 2, 0};
int integer = BitConverter.ToInt32(data, 0);
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以转换为其他类型,如Single和Double.
使用左移运算符和或运算符:
int d = (data[2] << 16) | (data[1] << 8) | data[0]
Run Code Online (Sandbox Code Playgroud)
显然,你可以在这里做各种各样的事情,比如使用循环等:)
| 归档时间: |
|
| 查看次数: |
7903 次 |
| 最近记录: |