【发布时间】:2011-02-10 22:07:26
【问题描述】:
我有一个需要转换为字节数组的 int 值。 你如何在 Objective-C 中做到这一点?有没有办法做到这一点?
谢谢,
【问题讨论】:
-
可能重复:Stackoverflow - Store an int in a char array?。至少它可以让你到达
char[]。
标签: objective-c bytearray int
我有一个需要转换为字节数组的 int 值。 你如何在 Objective-C 中做到这一点?有没有办法做到这一点?
谢谢,
【问题讨论】:
char[]。
标签: objective-c bytearray int
以什么方式转换?你想要它是小端、大端还是原生字节顺序?如果您希望它以本机字节顺序排列,那么您需要做的就是:
int val = //... 以某种方式初始化整数 char* 字节 = (char*) &val; int len = sizeof(int);也就是说,处理整数字节的最佳方法是进行按位运算。例如,要获取最低位字节,可以使用val&0xFF,获取下一个使用(val>>8)&0xFF,然后是(val>>16)&0xFF,然后是(val>>24)&0xFF,等等。
当然,这取决于您的数据类型的大小。如果你做这些事情,你真的应该包括<inttypes.h>;,并使用uint8_t、uint16_t、uint32_t或uint64_t,这取决于你想要多大的整数;否则,您将无法可靠地处理大量字节。
【讨论】:
sizeof() 确定的长度可靠地处理它们的字节吗?
我怀疑您想要做的是将这个字节数组传递给某个地方可能的 NSMutableData 对象。你只需传递地址 &val
例子:
[myData appendBytes:&myInteger length:sizeof(myInteger)];
这个链接更完整,处理字节序:
【讨论】: