這裏是轉動4個字節到目標c 32位整數的一個例子。功能的readInt抓鬥從4個字節讀函數,然後將其轉換成一個32位的int。有誰知道我會如何將4個字節轉換爲浮點數?我相信它是大端。基本上我需要一個readFloat函數。我永遠無法掌握這些按位操作。如何把4個字節成浮在目標c從NSData的
編輯: 我忘了提,原始數據來自Java的DataOutputStream類類。 accordign到Java文檔的writeFloat功能是
的浮點參數轉換爲使用中的floatToIntBits方法 Float類一個int,然後寫入該int值到底層 輸出流作爲一個4字節的數量,高字節在前。
這是目標C試圖提取Java寫的數據。
- (int32_t)read{
int8_t v;
[data getBytes:&v range:NSMakeRange(length,1)];
length++;
return ((int32_t)v & 0x0ff);
}
- (int32_t)readInt {
int32_t ch1 = [self read];
int32_t ch2 = [self read];
int32_t ch3 = [self read];
int32_t ch4 = [self read];
if ((ch1 | ch2 | ch3 | ch4) < 0){
@throw [NSException exceptionWithName:@"Exception" reason:@"EOFException" userInfo:nil];
}
return ((ch1 << 24) + (ch2 << 16) + (ch3 << 8) + (ch4 << 0));
}
你需要知道的漂浮在字節表示。這些數據來自哪裏?數據源或協議是否有規範或類似文檔? –
@KenThomases它來自Java的DataOutputStream類。我試圖通過ios讀取它。 – NJGUY