Comparar hex / Diff

Esta é uma ferramenta de comparar hex / Diff. XOR é a máscara dos bits que mudaram; a distância de Hamming é quantos diferem. 0x3C vs 0x3E a 8 bits é um bit, máscara 0x02.

Exemplos — clique numa amostra

Clique num bit de A ou B para o inverter. Os anéis vermelhos marcam os que diferem.

A

B

XOR

Os dígitos hex com nibble alterado ficam anelados.

Clique num valor para copiar

Lote (uma por linha ou vírgulas)

Um par por linha: 0x3C 0x3E ou 3C,3E. Mostrar exemplo carrega três linhas; a tabela mostra Hamming e XOR.

Esta é uma ferramenta de comparar hex / Diff

Compara dois inteiros da mesma largura e mostra que bits mudaram. XOR é a máscara dos bits diferentes; Hamming é quantos 1s tem. 0x3C vs 0x3E a 8 bits é distância 1, máscara 0x02. 0x10 vs 0x01 é distância 2 embora a subtração seja 15. HEX, XOR, Hamming não se traduzem. Não é a calculadora bitwise HEX, nem um hex dump de dois ficheiros, nem o diff de texto.

Como usar

  1. Introduza A e B como Hex / Decimal / Binary e escolha Auto / 4 / 8 / 16 / 32 / 64. Auto usa 8/16/32/64 conforme o maior.
  2. Os anéis vermelhos marcam bits diferentes em A, B e XOR. Clique num bit de A ou B para o inverter. Trocar A / B troca os campos.
  3. Estatísticas: Hamming, bits iguais, semelhança, só em A, só em B. Nibbles hex alterados ficam anelados. Os índices contam da direita (LSB = 0): 0x3C vs 0x3E é o bit 1.
  4. Mostrar exemplo é 0x3C vs 0x3E. Outros: 0x10 vs 0x01, 0xFF vs 0x00 (distância 8), 0xAA vs 0x55, 0xF vs 0x1F (distância 1 a 8 bits). Copiar resultado copia a máscara XOR em hex.
  5. O lote é um par por linha (espaços ou vírgulas). A tabela lista Hamming e XOR na largura atual.

Notas

Os valores são mascarados à largura; hex curto preenche zeros à esquerda. Hamming 1 é um só bit. A semelhança é bits iguais a dividir pela largura. Para XOR com AND/OR: bitwise HEX. Para um buffer inteiro: hex dump.

Onde usar

  • Dumps de registos: mudou exatamente uma flag?
  • Dois checksums que deviam coincidir: Hamming 0 é igualdade bit a bit.

Perguntas

É o mesmo que subtrair?

Não. 0x10 vs 0x01 subtrai 15, mas só dois bits diferem (Hamming 2, máscara 0x11).

Porque é que 0xF vs 0x1F a 8 bits é um bit?

Ambos são preenchidos para 00001111 e 00011111. Sem uma largura comum as comprimentos difeririam.

Posso comparar dois ficheiros?

Aqui só hex curto. Para um buffer inteiro use hex dump.