我需要以下python代码的ruby等价物
import array
my_array = array.array('B', [0x00, 0x04, 0xcc, 0x50]).tostring()
UPDATE:我正在尝试使用ruby-serialport gem将4个字节写入串口。
通过将上面的字节数组写入串口,我能够使它在python中工作。现在我想在红宝石中做同样的事情。
答案 0 :(得分:6)
您在寻找Array#pack
吗?
byte_string = [0x00, 0x04, 0xCC, 0x50].pack('C*')
来自fine manual:
arr.pack ( aTemplateString ) → aBinaryString
根据 aTemplateString 中的指令将 arr 的内容打包成二进制序列。
C
模板用于无符号的8位整数(即单个字节),*
只表示“将前面的模板用于数组中的其余元素”。
答案 1 :(得分:1)
您可以将以十六进制给出的字节直接放入字符串中。下面的部分对Python和Ruby都有效。
"\x00\x04\xcc\x50"
答案 2 :(得分:1)
好像你想获得以下字符串:\x00\x04\xccP
。您只需撰写"\x00\x04\xcc\x50"