Сравнение hex / Diff

Это сравнение hex / Diff. XOR — маска изменившихся битов; расстояние Хэмминга — сколько их. 0x3C против 0x3E на 8 битах — 1 бит, маска 0x02.

Примеры — нажмите образец

Нажмите бит A или B, чтобы переключить. Красные кольца — различающиеся биты.

A

B

XOR

Изменённые hex-полубайты обведены.

Нажмите значение, чтобы скопировать

Пакет (строка или запятые)

Одна пара в строке: 0x3C 0x3E или 3C,3E. Пример загружает три строки; таблица показывает Хэмминга и XOR.

Это сравнение hex / Diff

Сравнивает два целых одной ширины и показывает, какие биты изменились. XOR — маска различающихся битов; Хэмминг — сколько в ней единиц. 0x3C против 0x3E на 8 битах — расстояние 1, маска 0x02. 0x10 против 0x01 — расстояние 2, хотя вычитание даёт 15. HEX, XOR, Hamming не переводятся. Это не побитовый калькулятор HEX, не hex-дамп двух файлов и не текстовый diff.

Как пользоваться

  1. Введите A и B как Hex / Decimal / Binary и выберите Авто / 4 / 8 / 16 / 32 / 64. Авто берёт 8/16/32/64 по большему значению.
  2. Красные кольца отмечают разные биты на A, B и XOR. Нажмите бит A или B, чтобы переключить. Поменять A / B меняет поля местами.
  3. Карточки: Хэмминг, совпавшие биты, схожесть, только в A, только в B. Изменённые hex-полубайты обведены. Индексы справа (LSB = 0): 0x3C против 0x3E — бит 1.
  4. Пример — 0x3C против 0x3E. Ещё: 0x10 против 0x01, 0xFF против 0x00 (расстояние 8), 0xAA против 0x55, 0xF против 0x1F (расстояние 1 на 8 битах). Копировать результат копирует XOR-маску в hex.
  5. Пакет — одна пара в строке (пробелы или запятые). Таблица даёт Хэмминга и XOR на текущей ширине.

Замечания

Значения маскируются шириной; короткий hex дополняется нулями слева. Хэмминг 1 — один бит. Схожесть — совпавшие биты / ширина. XOR рядом с AND/OR: побитовый HEX. Весь буфер: hex-дамп.

Где применять

  • Дампы регистров: изменился ровно один флаг?
  • Две контрольные суммы, которые должны совпасть: Хэмминг 0 — побитовое равенство.

Вопросы

Это то же, что вычитание?

Нет. 0x10 минус 0x01 даёт 15, но различаются только два бита (Хэмминг 2, маска 0x11).

Почему 0xF против 0x1F на 8 битах — один бит?

Оба дополняются до 00001111 и 00011111. Без общей ширины длины были бы разными.

Можно сравнить два файла?

Здесь только короткий hex. Для всего буфера — hex-дамп.