同様の質問をいくつか見ましたが、これを正しく理解できません。
'0xFF3C' などの NSData オブジェクトで 16 ビットの符号付き整数を受け取りました。ここから正しい数字を読み取るにはどうすればよいでしょうか。
編集:ジェームズ・ウェブスターの答えで私は得る:
Received hex value : <0800>
Converted value: 803995656
Received hex value : <0a00>
Converted value: 803995658
Received hex value : <1a00>
Converted value: 803995674
Received hex value : <faff>
Converted value: 804061178
Received hex value : <e4ff>
Converted value: 804061156
Received hex value : <f0ff>
Converted value: 804061168
これは明らかに正しくありません (私は +/- 2000 を期待しています)
編集:いくつかのコード:
-(void)characteristicValueRead:(CBCharacteristic *)characteristic{
unsigned short myInt = (int) [characteristic.value bytes];
NSLog(@"Received value: %@", characteristic.value);
NSLog(@"Converted value: %i",(int)myInt);
}
このスニペットを使用すると、次のようになります。
Received value: <0000>
Converted value: 26176
Received value: <0000>
Converted value: 46688
Received value: <0000>
Converted value: 30576
Received value: <0000>
Converted value: 2656
Received value: <0000>
Converted value: 50896
Received value: <0000>
これは本当に面白い/迷惑に見えます。これは何に由来するのでしょうか?