如何在Objective C中将int转换为big-endian 32位数?

时间:2011-04-21 18:38:53

标签: objective-c ios4 websocket

我试图在ObjC中实现WebSocket握手(76)并且无法弄清楚(因为我是C和ObjC的新手)我该如何获得以下内容:

  1. 列表项
  2. 我有两个号码

    155712099
    173347027
    
  3. 我需要将它们转换为32位大端数字

  4. 将它们连接成一个字符串
  5. 并以ASCII
  6. 表示结果字符串

    非常感谢帮助。

2 个答案:

答案 0 :(得分:7)

由于您使用的是iPhone SDK,因此您可以访问Core Foundation。使用:

uint32_t myInt32Value = ...;
uint32_t myInt32AsABigEndianNumber = CFSwapInt32HostToBig(myInt32Value);

答案 1 :(得分:2)

Objective-C基于C并且通常具有可用的C标准库,因此您可以使用标准htonl函数。然后,您可以使用普通的字符串函数进行字符串操作。