Ruby:对位串进行二进制运算

时间:2014-05-13 08:09:28

标签: ruby bit-manipulation bitwise-operators

我有一个长(45)字符位串的数组,它基本上代表了一堆属性的布尔状态。我需要对这些字符串执行OR和AND操作并返回生成的二进制字符串。 例如:

    a = "100"
    b = "101"

我现在需要计算:

    a_or_b  = "101"
    a_and_b = "100"

对我来说,这样做有效吗?我能以某种方式使用按位运算符吗?

1 个答案:

答案 0 :(得分:2)

您可以使用Integer#to_s(base)String.to_i(base)

a_and_b = (a.to_i(2) & b.to_i(2)).to_s(2)

a_or_b = (a.to_i(2) | b.to_i(2)).to_s(2)