Calculadora de checksum SUM/XOR/LRC

Calcule SUM-8, SUM-16, XOR-8 e LRC-8 a partir de bytes HEX ou texto UTF-8.

Os cálculos são feitos no navegador. Os dados não são enviados a um servidor.

Formato de entrada

Use HEX contínuo ou grupos de bytes completos separados por espaços, vírgulas ou ponto e vírgula. O prefixo 0x é aceito. Tamanho máximo: 64 KiB.

Resultados de checksum

Entrada: 4 bytes

Prévia dos bytes (HEX)

01 02 03 04

SUM-8

Some os bytes e mantenha os 8 bits inferiores.

HEX
0x0A
Decimal
10
Binário
00001010

SUM-16

Some os bytes e mantenha os 16 bits inferiores.

HEX
0x000A
Decimal
10
Binário
0000000000001010

XOR-8

Aplique XOR a cada byte, começando em 0.

HEX
0x04
Decimal
4
Binário
00000100

LRC-8

Complemento de dois de SUM-8: (256 − SUM-8) mod 256.

HEX
0xF6
Decimal
246
Binário
11110110

LRC-8 usa o complemento de dois da soma do Modbus ASCII. Apenas os bytes inseridos são calculados; cabeçalhos e finais de quadro não são removidos automaticamente.

Como calcular o checksum

Escolha bytes HEX ou texto UTF-8 e insira os dados. Os quatro resultados são atualizados automaticamente. HEX aceita 01020304, 01 02 03 04 ou 0x01, 0x02. Não aceita meios bytes, sinais negativos, dois-pontos ou quadros Modbus ASCII completos. Mudar o formato reinterpreta o conteúdo sem convertê-lo.

Diferenças entre os algoritmos

  • SUM-8: soma dos valores dos bytes módulo 256.
  • SUM-16: soma de bytes individuais módulo 65536. Não agrupa bytes em palavras de 16 bits e não é o checksum da Internet.
  • XOR-8: XOR de todos os bytes, começando em zero. Alguns protocolos chamam isso de BCC; confira a definição do dispositivo.
  • LRC-8: complemento de dois de SUM-8, conforme Modbus ASCII. Outros protocolos podem definir LRC de outra forma.

Para HEX 01 02 03 04:

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

Exemplo de LRC Modbus ASCII

O exemplo 01 03 00 00 00 0A produz LRC-8 0xF2. São seis bytes HEX, não os códigos UTF-8 dos caracteres hexadecimais.

Para gerar LRC, insira apenas endereço, função e dados. Exclua os dois-pontos iniciais, um LRC existente e CR/LF. Acrescente F2 para obter :01030000000AF2, seguido de CR/LF. Veja o guia Modbus Serial Line, §6.2.1.

Para conferir um LRC existente, insira dados e LRC no modo HEX, como 01 03 00 00 00 0A F2. SUM-8 deve ser 0x00. Isso confere a relação da soma, não a estrutura completa do quadro.

Por que texto e HEX dão resultados diferentes?

O texto 01 vira os bytes UTF-8 30 31; HEX 01 é apenas um byte. Espaços e quebras de linha contam no modo texto; caracteres não ASCII podem ocupar vários bytes. Confira a prévia. O limite é 64 KiB; apenas os primeiros 32 bytes são exibidos, mas todos são calculados.

Esses checksums detectam alguns erros de transmissão; não protegem contra adulteração. Para CRC, MD5 ou SHA, use as ferramentas indicadas nesta página.