可能重复:
Xor of string in ruby
我想在两个字符串之间进行XOR计算。
irb(main):011:0> a = 11110000
=> 11110000
irb(main):014:0> b = 10111100
=> 10111100
irb(main):015:0> a ^ b
=> 3395084
我想这样做:"hello" ^ "key"
答案 0 :(得分:13)
class String
def ^( other )
b1 = self.unpack("U*")
b2 = other.unpack("U*")
longest = [b1.length,b2.length].max
b1 = [0]*(longest-b1.length) + b1
b2 = [0]*(longest-b2.length) + b2
b1.zip(b2).map{ |a,b| a^b }.pack("U*")
end
end
p "hello" ^ "key"
#=> "he\a\t\u0016"
如果这不是您想要的结果,那么您需要明确说明您希望如何执行计算,或者您期望得到什么结果。
答案 1 :(得分:1)