我有一个长(45)字符位串的数组,它基本上代表了一堆属性的布尔状态。我需要对这些字符串执行OR和AND操作并返回生成的二进制字符串。 例如:
a = "100"
b = "101"
我现在需要计算:
a_or_b = "101"
a_and_b = "100"
对我来说,这样做有效吗?我能以某种方式使用按位运算符吗?
答案 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)