【发布时间】:2021-08-27 12:43:23
【问题描述】:
最近我正在尝试将 python 串行数据分析器转换为 c++,但我面临一个问题,即如何将 feff 转换为 c++ 中的整数 -2,这是我的 python 代码的一部分。
def Control_Message(input_):
print(input_[4:8])
print(bytes.fromhex(input_[4:8]))
print(struct.unpack('h', bytes.fromhex(input_[4:8])))
print(struct.unpack('h', bytes.fromhex(input_[4:8]))[0])
Angular_Rate_X = struct.unpack('h', bytes.fromhex(input_[0:4]))[0] * 600 * 2 ** -20
结果是:
feff
b'\xfe\xff'
(-2,)
-2
现在我很困惑,我怎么能在 c++ 中做同样的事情,希望你的帮助,谢谢!
【问题讨论】:
-
您是否尝试过在您的 C++ 教科书中寻找这样做的示例?你试过什么?此类基本字节操作的示例总是可以在介绍性 C 和 C++ 教科书中找到。
-
@SamVarshavchik 谢谢你的回答!我尝试用谷歌搜索这个解决方案,但我失败了。我是 c++ 新手,我现在就去检查我的 c 入门,
-
@Kniok 当您将 feff 转换为整数时,您会得到 65279。您能解释一下尝试将其转换为 2 的含义吗?
-
@east1000 这正是 2 的补码……我从来没想过。
-
请提供足够的代码,以便其他人更好地理解或重现问题。