我想知道是否有一个目标C等价于.Net的BitConverter.GetBytes()方法。
例如,在C#中,我可以这样写:
byte[] lengthPrefix = BitConverter.GetBytes(message.length);
目标C中的等价物是什么?
如果能提供一些示例代码,我们将非常感激。
提前谢谢。
发布于 2010-05-28 20:55:02
如果您不需要特定的endian-ness:
unsigned char * lengthPrefix = (unsigned char *)&message.length;或者,如果需要,复制到32位缓冲区。
unsigned char lengthPrefixBuffer[4];
memcpy(lengthPrefixBuffer, &message.length, 4);发布于 2010-05-28 20:50:35
因为Objective-C的根是C,所以您可以使用按位运算符来完成类似的操作。
在COCOA/COCOA-TOUCH框架中,没有任何东西可以自动为您完成这项工作(比如.NET的BitConverter)。
发布于 2017-05-16 16:28:32
byte[] lengthPrefix = BitConverter.GetBytes(message.length);等效于
long ID = length;
Byte *some = (Byte*)&ID;
Byte b1 = some[0];
Byte b2 = some[1];
Byte b3 = some[2];
Byte b4 = some[3];
Byte lengthPrefix[]= {b1,b2,b3,b4};你需要多少字节……因此,在执行此操作之前,请指定您想要的长度和字节数。所以在很长一段时间内,4个字节就足够了。对于uint32,您可能需要更多。
https://stackoverflow.com/questions/2929004
复制相似问题