首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objective C BitConverter等价物

Objective C BitConverter等价物
EN

Stack Overflow用户
提问于 2010-05-28 20:41:42
回答 3查看 1.1K关注 0票数 2

我想知道是否有一个目标C等价于.Net的BitConverter.GetBytes()方法。

例如,在C#中,我可以这样写:

byte[] lengthPrefix = BitConverter.GetBytes(message.length);

目标C中的等价物是什么?

如果能提供一些示例代码,我们将非常感激。

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-28 20:55:02

如果您不需要特定的endian-ness:

代码语言:javascript
复制
unsigned char * lengthPrefix = (unsigned char *)&message.length;

或者,如果需要,复制到32位缓冲区。

代码语言:javascript
复制
unsigned char lengthPrefixBuffer[4];
memcpy(lengthPrefixBuffer, &message.length, 4);
票数 2
EN

Stack Overflow用户

发布于 2010-05-28 20:50:35

因为Objective-C的根是C,所以您可以使用按位运算符来完成类似的操作。

在COCOA/COCOA-TOUCH框架中,没有任何东西可以自动为您完成这项工作(比如.NET的BitConverter)。

票数 0
EN

Stack Overflow用户

发布于 2017-05-16 16:28:32

byte[] lengthPrefix = BitConverter.GetBytes(message.length);等效于

代码语言:javascript
复制
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,您可能需要更多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2929004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档