gpt4 book ai didi

c++ - MSB 到 LSB 交换后保留符号和小数

转载 作者:行者123 更新时间:2023-11-30 21:10:07 27 4
gpt4 key购买 nike

我以 2 字节短值的十六进制值形式获取数据,但交换值后丢失了。

 signed short value = 0x0040;
value = (value*0.5) - 40;
convertMSBTOLSB(value); //Conversion used bcz my device reading as LSB first

//Implementation of convertMSBTOLSB(value)
unsigned short temp = ((char*) &value)[0]; // assign value's LSB
temp = (temp << 8) | ((char*) &value)[1]; // shift LSB to MSB and add value's MSB
value = temp;

转换后我的值为-8

当我发送 0x51 时出现问题,最终值应该是 0.5,但由于值被短签名而变为零。

convertMSBTOLSB 只是字节交换,我如何处理代码以便它可以解析 -ve 和十进制值

期望一些输入来更改代码,以便它可以解析 -ve 和十进制值

最佳答案

您不会得到 0.5,因为您的 value 变量被声明为短变量,因此只能保存整数。

关于c++ - MSB 到 LSB 交换后保留符号和小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31949360/

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