我有一个校验和,需要添加到十六进制的红宝石字符串中。我一直无法成功转换校验和。我对 ruby 比较陌生,所以我不确定我是否遗漏了什么。这是我正在做的事情:
def get_checksum message
# get the checksum
cnt = 0
lrc = 0
while (cnt < message.length - 1)
lrc = lrc ^ message[cnt].to_i
cnt += 1
end
# return as hex
lrc.to_s.each_byte.map { |b| b.to_s(16) + " " }.join
end
我也有一些 c# 参考代码,但从未使用过 C# 作为长期 mac C/C++/Obj-C 编码器。这是我要转换的 C# 代码:
// calculate LRC
private string GetChecksum(string inputstring)
{
int checksum = 0;
foreach (char c in inputstring)
{
checksum ^= Convert.ToByte(c);
}
return checksum.ToString("X2");
}
任何帮助,将不胜感激。