チェックサム計算ツール(SUM・XOR・LRC)

HEX バイト列または UTF-8 テキストから、SUM-8・SUM-16・XOR-8・LRC-8 を一括計算します。

すべてブラウザ内で計算します。入力データはアップロードされません。

入力形式

連続した HEX、または空白・カンマ・セミコロンで区切った完全なバイト列を入力します。0x 接頭辞にも対応します。 最大データサイズ:64 KiB。

チェックサムの結果

計算対象:4 バイト

入力バイトのプレビュー(HEX)

01 02 03 04

SUM-8

全バイトを加算し、下位 8 ビットを残します。

HEX
0x0A
10 進数
10
2 進数
00001010

SUM-16

全バイトを加算し、下位 16 ビットを残します。

HEX
0x000A
10 進数
10
2 進数
0000000000001010

XOR-8

0 から開始して全バイトの XOR を取ります。

HEX
0x04
10 進数
4
2 進数
00000100

LRC-8

SUM-8 の 2 の補数:(256 − SUM-8) mod 256。

HEX
0xF6
10 進数
246
2 進数
11110110

LRC-8 は Modbus ASCII の加算値の 2 の補数です。入力したバイトだけを計算し、フレームの開始・終了部分は自動除外しません。

チェックサムの計算方法

HEX バイト列または UTF-8 テキストを選んで入力すると、4 種類の結果が自動更新されます。HEX は 01020304、01 02 03 04、0x01, 0x02 の形式に対応します。半バイト、負号、コロン、完全な Modbus ASCII フレームは入力できません。形式の切り替えは現在の入力の再解釈であり、データ変換ではありません。

各アルゴリズムの違い

  • SUM-8:各バイトを加算し、256 で割った余りを返します。
  • SUM-16:各バイトを加算し、65536 で割った余りを返します。隣接バイトを 16 ビットのワードにまとめる方式や Internet checksum とは異なります。
  • XOR-8:0 から開始して各バイトの排他的論理和を取ります。BCC と呼ぶプロトコルもありますが、機器の仕様を確認してください。
  • LRC-8:本ツールでは Modbus ASCII と同じ SUM-8 の 2 の補数を使用します。他のプロトコルの LRC は定義が異なる場合があります。

HEX 01 02 03 04 の結果:

SUM-8 SUM-16 XOR-8 LRC-8
0x0A 0x000A 0x04 0xF6

Modbus ASCII の LRC 計算例

Modbus の例 01 03 00 00 00 0A の LRC-8 は 0xF2 です。計算対象は 6 バイトであり、表示された 16 進文字の UTF-8 コードではありません。

生成時はアドレス・機能コード・データのみを入力し、先頭のコロン、既存の LRC、末尾の CR/LF を除きます。F2 を追加すると :01030000000AF2 となり、その後に CR/LF が続きます。Modbus Serial Line Guide §6.2.1 を参照してください。

既存 LRC を確認する場合は HEX モードで 01 03 00 00 00 0A F2 のように LRC を含めます。SUM-8 が 0x00 なら加算の関係が成立しています。フレーム全体の構造を検証するものではありません。

テキストと HEX で結果が異なる理由

テキスト 01 の UTF-8 バイトは 30 31、HEX 01 は 1 バイトです。テキストでは空白・改行も計算され、日本語などは複数バイトになります。入力バイトのプレビューで確認できます。上限は 64 KiB、プレビューは先頭 32 バイトですが、計算には全データを使用します。

これらの簡易チェックサムは一部の通信エラー検出用であり、改ざんを防ぐものではありません。CRC・MD5・SHA にはページ内のリンク先ツールを使用してください。