gpt4 book ai didi

java - 未从字节值获取正确的值到 int 中

转载 作者:行者123 更新时间:2023-12-01 09:20:36 25 4
gpt4 key购买 nike

我正在从蓝牙获取数据,并希望将字节值转换为 int 并将结果显示为 float ,因为我编写了以下代码

String prob1Str = manufactureData.substring(20, 24); // prob1Str = FE70

float prob1Temp = (Integer.parseInt(prob1Str,16)&0xffff); // Here I am getting prob1Tem = 65136.0 instead of -400.0
model.setProb1Temp(prob1Temp);

从上面的代码我得到prob1Tem = 65136.0而不是-400.0

谁能帮我解决这个问题

谢谢

最佳答案

只需将结果转换到short即可!

float prob1Temp = (short)Integer.parseInt(prob1Str, 16);

int是32位,所以0x0000FE70 = 65136,它是一个正值!

Short 是 16 位,0xFE70 = -400,之后您将其重新转换为 int 或 float。

看看that explanation了解更多详情。

关于java - 未从字节值获取正确的值到 int 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40189572/

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