3
我想提出兩個字符串之間的XOR運算。
irb(main):011:0> a = 11110000
=> 11110000
irb(main):014:0> b = 10111100
=> 10111100
irb(main):015:0> a^b
=> 3395084
我想做到這一點:"hello"^"key"
我想提出兩個字符串之間的XOR運算。
irb(main):011:0> a = 11110000
=> 11110000
irb(main):014:0> b = 10111100
=> 10111100
irb(main):015:0> a^b
=> 3395084
我想做到這一點:"hello"^"key"
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"
如果這不是你想要的結果,那麼你需要明確你想要如何進行計算,或者是什麼導致你的期望。
看看[紅寶石字符串的異或](http://stackoverflow.com/q/348991/49186) – dexter 2011-05-23 12:17:39
你必須學會如何使用SO。你一直在發送很多基本相同的問題(XOR和更多的XOR),但是你不會評論答案,你不會選擇它們,你也不會提供任何反饋。有什麼問題?例如,這裏(http://stackoverflow.com/questions/5961720/how-to-calculate-xor-with-offset),你有這個問題幾乎解決了,只是得到每個字符串的字節,而不是使用整數0/1。 – tokland 2011-05-23 12:34:12
這不是鏈接問題的重複([348991](http://stackoverflow.com/questions/348991/xor-of-string-in-ruby)),而是另一個([5961720](http: /stackoverflow.com/questions/5961720/how-to-calculate-xor-with-offset)) – finnw 2011-05-24 00:23:46