Ruby中的字节操作

时间:2014-12-19 11:30:04

标签: ruby arrays byte

我想了解如何让Ruby使用字节数组线索

以下代码是C#:

int t = (GetTime() / 60) //t is time in seconds divided by 60s (1 min)
byte[] myArray = new byte[64];
myArray[0] = (byte)(t >> 24);
myArray[1] = (byte)(t >> 16);

知道如何让它在Ruby中运行吗?

2 个答案:

答案 0 :(得分:1)

一种方法是使用整数数组并使用Array#pack将结果打包成二进制字符串。 E.g。

[65, 66, 67].pack('C*')

返回ABC

另一种方法是在编码设置为“ASCII-8BIT”

时直接操作字符串

答案 1 :(得分:0)

Ruby可以执行按位操作,您可以使用普通数组,因此我没有看到问题。 我目前不使用C#,因此我无法检查结果是否相同。

t = Time.now.to_i / 60 #t is time in seconds divided by 60s (1 min)
myArray = []
myArray[0] = t >> 24
myArray[1] = t >> 16
p myArray #=>[1, 360]