我正在组装一个NSData对象,我得到以下
0100020000
这是我想要的,除了领先的零。我需要它
100020000
我尝试了以下代码。但它留给我00020000.
NSRange range = NSMakeRange(0, 1);
[byteRequest replaceBytesInRange:range withBytes:NULL length:0];
有什么想法吗?谢谢。
答案 0 :(得分:0)
根据您的描述,您有以下5个字节:
1,0,2,0,0
你以某种方式将其转换为十六进制,每个字节创建两位数:
" 01 00 02 00 00"
但这只是前一个字节的文本表示。它相当于所有这些:
" 0100020000"
" 0x0100020000"
" 4295098368" (十进制) " 040000400000" (八进制)
你想要的那个:" 100020000"
就像" 1.00"相当于" 1.0"," 01"相当于" 1"。
如果你的目标是将所有字节的字符串作为两位数的字符串,除了第一个字符串,它应该只有所需的数字,那么这是一个例子:
int bytes[5] = {1, 0, 2, 0, 0};
NSString *str = [NSString stringWithFormat:@"%x%02x%02x%02x%02x", bytes[0], bytes[1], bytes[2], bytes[3], bytes[4]];
如果字节数是未知的,你可以使用一个循环并附加这些。从%x
开始,然后使用%02x
进行后续操作。