如何在objective中编写函数-c转换为6位整数到4字节的十六进制值?

时间:2013-02-27 23:31:06

标签: objective-c

如何在Objective-C中将整数6位数字(如“1234674”)转换为十六进制4字节NSData?

1 个答案:

答案 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)];

我没有尝试编码,但应该工作,万一我希望你有这个想法