我如何写一个函数在objective - c转换为6位整数到4字节十六进制值



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

数据是字节,字节是位不是十六进制,十六进制只是解释数据的一种方式。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指针,像这样:

char *c = &x;
NSString *hexStr = [NSString stringWithFormat:
    @"%02X%02%02X%02", *c, *(c+1), *(c+2), *(c+3)];

我没有尝试编码,但应该工作,以防万一我希望你得到的想法

最新更新