dka*_*kam 6 ruby 3des des parity
在Ruby中计算字节是否具有奇数或偶数奇偶校验的最佳方法是什么?我有一个版本工作:
result = "AB".to_i(16).to_s(2).count('1').odd?
=> true
Run Code Online (Sandbox Code Playgroud)
将数字转换为字符串并计算"1"似乎是计算奇偶校验的一种不好的方法.有更好的方法吗?
我希望能够计算3DES密钥的奇偶校验.最终,我想将偶数字节转换为奇数.
谢谢,丹
除非你的东西不够快,否则保留它.它清晰简洁,性能优于您的想象.
我们将针对阵列查找进行基准测试,这是我测试过的最快的方法:
ODD_PARITY = [
false,
true,
true,
...
true,
false,
]
def odd_parity?(hex_string)
ODD_PARITY[hex_string.to_i(16)]
end
Run Code Online (Sandbox Code Playgroud)