我有十六进制值如以下的数组:如何将十六进制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