如何用偏移量计算XOR?

我想用不同的偏移量进行XOR计算来计算列表。如何用偏移量计算XOR?

例子:

key = [0, 1, 0] 

text = ["0", "1", "0", "1", "0", "1", "0", "1", "1", "1"]

的XOR运算:

key[0]^text[0] ; 

key[1]^text[1] ;

key[2]^text[2] ;

key[0]^text[3] ;

key[1]^text[4] ;

key[2]^text[5] ;

key[0]^text[6] ;

key[1]^text[7] ;

key[2]^text[8] ;

key[0]^text[9] ;

如何做到这一点?

回答:

您可以使用Array#cycle方法 “循环” 的关键不亚于需要:

text.zip(key.cycle).map{|t,k| t.to_i^k} 

# => [0, 0, 0, 1, 1, 1, 0, 0, 1, 1]

回答:

Ruby 1.9的有.cycle:

key = [0, 1, 0] 

text = ["0", "1", "0", "1", "0", "1", "0", "1", "1", "1"]

key_looper = key.cycle

p text.map{|el|key_looper.next^el.to_i} #=> [0, 0, 0, 1, 1, 1, 0, 0, 1, 1]

以上是 如何用偏移量计算XOR? 的全部内容, 来源链接: utcz.com/qa/265595.html

回到顶部