如何在Objective-C中将整数6位数字(如“1234674”)转换为十六进制4字节NSData?
答案 0 :(得分:3)
数据是字节,字节是不是十六进制的位,十六进制只是解释数据的一种方式。 ARM中的int是32位(可以使用int32_t或sizeof)
你可以做到
int x = 1234674;
NSData *myData = [NSData dataWithBytes:&x length:sizeof(int)]
然后如果你想把这些数据打印成十六进制:
char c[4] = [myData bytes];
NSLog("%@",[NSString stringWithFormat:@"%02X%02%02X%02",c[0],c[1],c[2],c[3]]);
如果您只想打印或转换为十六进制字符串,可以使用这样的字符指针:
char *c = &x;
NSString *hexStr = [NSString stringWithFormat:
@"%02X%02%02X%02", *c, *(c+1), *(c+2), *(c+3)];
我没有尝试编码,但应该工作,万一我希望你有这个想法