如何从十进制值构建 NSData?

How to build NSData from decimal value?

我有一个十进制值(从带有 GATT 的 BLE 设备读取)256(同一个应用程序也将此值显示为 0x00010000,并将类型指示为 16BIT FLOAT)。这里是the description的数据结构。

我应该如何生成与 NSData 相同的值?

你可以这样做,因为最后它是一个浮点值。

编码:

NSMutableData * data = [NSMutableData dataWithCapacity:0];
[data appendBytes:&yourfloatvalue length:sizeof(float)];

解码:

NSData * data = ...; // loaded from bluetooth
float yourfloatvalue;
[data getBytes:&yourfloatvalue length:sizeof(float)];

如果你不想使用 NSMutableData 那么你可以这样做:

NSData * data = [NSData dataWithBytes:&yourfloatvalue length:sizeof(float)];