我有十六進制值如以下的數組:如何將十六進制NSData轉換爲十進制數組?
const UInt8 request_MifareID[] = {
0x00, 0xCA, 0x01, 0x0A, 0x00
};
然後我將其傳送到NSData的用於通信:
NSData *data = [[NSData alloc] initWithBytesNoCopy:(UInt8 *)request_MifareID length:5];
發送「數據」到服務器並獲得所述服務器響應:
Printing description of resp:
<ee97562d 02280400 00000000 21074400 9000>
NSUInteger len = [resp length];
Printing description of len:
(NSUInteger) len = 18
「resp」也是十六進制格式NSData
現在,我必須將「resp」轉移到十進制數組
我應該怎麼做?
---------------------------------------------- --------編輯
好吧,首先
我需要換乘NSData的哪個服務器的響應(它不是字符串,只能使用數字):
ee97562d 02280400 00000000 21074400 9000
成什麼樣的目的?
字節?
當我使用
NSString * str = [[NSString alloc] initWithData: resp
encoding:NSUTF8StringEncoding];
它返回零
在存儲器中的表示不是 「小數」 或 「十六進制數」。它不取決於你如何格式化它。做'NSLog(@「%u」,((uint8_t *)[data bytes])[0])'和voilà。 – 2013-10-04 10:07:33
請參閱關於此主題的另一個SO線程:http://stackoverflow.com/questions/19066246/literal-converstion-nsdata-to-nsstring/19066281#19066281 – nzs
Plz請參閱編輯:) – user2814476