チェックサム計算
チェックサム計算がなにげに面倒くさかったです。
きっと組み込みな人々は、もっとよい方法を知っているのであろう・・・。
環境
チェックサム計算
この例では、1バイト単位の16進数配列をチェックサム計算し、その配列にチェックサムを追加しています。
array = ["05", "0A", "0F"] => ["05", "0A", "0F"] sum = "%02X" % array.inject(0){|s,c| s += c.hex} => "1E" array << sum[-2..-1] => ["05", "0A", "0F", "1E"] # 最後の二文字を取り出す
ポイント
- チェックサム計算したいデータを1バイト単位で配列に格納
- injectでたたみ込み計算
- sprintfで16進数に変換