【发布时间】:2019-11-11 07:11:01
【问题描述】:
我正在处理来自 GY-87(acc 和陀螺仪传感器模块)的数据,我从它收到的数据格式为 ACCEL_YOUT_HIGH 和 ACCEL_YOUT_LOW,用于 Y 轴,分别指定 HIGH 和 LOW 值。我被告知“高和低寄存器本质上是 8 位的,因此两者的组合将是 16 位有符号数据”。但我真的不知道如何将它们组合成 16 位数据。这是一个示例:ACCEL_YOUT_HIGH=254 ACCEL_YOUT_LOW=144
我已经尝试过 JAVAScript 的方式,但它在 octave 中不起作用。
var number8Bit1 = firstNumber & 0xff;
var number8Bit2 = ((firstNumber >> 8) & 0xff);
【问题讨论】:
-
那会反过来。
(high << 8) | low将合并 -
@SamiKuhmonen 但 '
-
和256相加是一样的,后面可能要补正号
-
是的,
<<不是 Octave 中的运算符。相反,请使用bitshift函数。 -
或使用类型转换