Ruby如何将32位整数转换为网络字节顺序?

时间:2012-10-03 09:55:57

标签: ruby sockets endianness

  

可能重复:
  How to convert 32 bit integer to network byte order?

我已经问过“How to convert 32 bit integer to network byte order?”,但我仍然不理解这个概念。

我需要以网络字节顺序将数据长度写入套接字。

例如,如果以字节为单位的数据大小为1024,那么我需要在Ruby中将其表示为网络字节顺序。

根据我之前的问题的答案,它将是:

[1,0,2,4].pack("NNNN")

但是当我尝试这个时它也有效:

[10,24].pack("NN")
[4,2,0,1].pack("NNNN")

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

在Ruby中将32位整数转换为网络字节顺序的正确方法是

#[integer].pack("N")
[1024].pack("N")