gpt4 book ai didi

c# - 整数转换中的字节移位问题

转载 作者:行者123 更新时间:2023-11-30 15:17:58 25 4
gpt4 key购买 nike

我在二进制文件中读取了 3 个字节,我需要将其转换为整数。

我使用这段代码来读取字节:

LastNum last1Hz = new LastNum();
last1Hz.Freq = 1;
Byte[] LastNumBytes1Hz = new Byte[3];
Array.Copy(lap_info, (8 + (32 * k)), LastNumBytes1Hz, 0, 3);
last1Hz.NumData = LastNumBytes1Hz[2] << 16 + LastNumBytes1Hz[1] << 8 + LastNumBytes1Hz[0];

last1Hz.NumData 是一个整数

在我看到的帖子中,这似乎是将bytes转换为integers的好方法。

这里是读取值的捕获:

enter image description here

但整数 last1Hz.NumData 始终为 0。

我遗漏了一些东西,但无法弄清楚是什么。

最佳答案

需要用括号(因为加法比位移有更高的优先级):

int a = 0x87;
int b = 0x00;
int c = 0x00;

int x = c << 16 + b << 8 + a; // result 0
int z = (c << 16) + (b << 8) + a; // result 135

您的代码应如下所示:

last1Hz.NumData = (LastNumBytes1Hz[2] << 16) + (LastNumBytes1Hz[1] << 8) + LastNumBytes1Hz[0];

关于c# - 整数转换中的字节移位问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45298059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com