ウィキペディアの例を試してみました: http://en.wikipedia.org/wiki/Longitudinal_redundancy_check
これは lrc (C#) のコードです:
/// <summary>
/// Longitudinal Redundancy Check (LRC) calculator for a byte array.
/// ex) DATA (hex 6 bytes): 02 30 30 31 23 03
/// LRC (hex 1 byte ): EC
/// </summary>
public static byte calculateLRC(byte[] bytes)
{
byte LRC = 0x00;
for (int i = 0; i < bytes.Length; i++)
{
LRC = (LRC + bytes[i]) & 0xFF;
}
return ((LRC ^ 0xFF) + 1) & 0xFF;
}
結果は「EC」と言われましたが、「71」と表示されました。何が間違っていますか?
ありがとう。