Objective-C 中的位运算

Bitwise Operations in Objective-C

我有 2 个 NSData 元素,它们具有来自传感器的 2 个寄存器值。 高数据和低数据。 在 arduino 世界我做到了

Value = (HighData << 8) + LowData;

我应该如何使用 Objective-C 来实现它。

目前我有 HighData,LowData 的 NSData 类型,保存一个字节,其值是小数。

我想获取整数值,请帮忙

听起来你需要这样的东西:

NSData * highData = <something>;
NSData * lowData = <something else>;

if (highData.length != 1 || lowData.length != 1) {
    NSLog(@"Something went wrong!");
    return;
}

uint8_t * highBytes = (uint8_t *)highData.bytes;
uint8_t * lowBytes = (uint8_t *)lowData.bytes;

unsigned value = (((unsigned)highBytes[0]) << 8) + ((unsigned)lowBytes[0]);