【发布时间】:2010-09-25 19:51:02
【问题描述】:
我有一个字符串,假设是“123|ABC|test|12345|FF”,我想对每个字符的 ascii 值进行异或运算并以十六进制打印结果。
最简单的方法是什么?
【问题讨论】:
我有一个字符串,假设是“123|ABC|test|12345|FF”,我想对每个字符的 ascii 值进行异或运算并以十六进制打印结果。
最简单的方法是什么?
【问题讨论】:
找到了……
lrc = 0
input.each_byte do | c |
lrc ^= c
end
hexVal = lrc.to_s(16)
【讨论】:
在 Ruby 1.8.7 或 1.9.1 中:
input.bytes.inject { |a,b| a ^ b }.to_s(16)
【讨论】: