16進数のルビー文字列に追加する必要があるチェックサムがあります。チェックサムを正常に変換できませんでした。私はルビーに比較的慣れていないので、何かが足りないかどうかわかりません。これが私がしていることです:
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#参照コードも持っていますが、長い間Mac C / C ++ / Obj-Cコーダーである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");
}
どんな助けでもいただければ幸いです。