XOR двух шестнадцатеричных строк в JavaScript: изучение нескольких методов на примерах кода

“XOR двух шестнадцатеричных строк в JavaScript: различные методы, объясненные примерами кода”

Шестнадцатеричные строки обычно используются в программировании для представления двоичных данных в удобочитаемом формате. XOR (исключающее ИЛИ) — это поразрядная операция, которая сравнивает соответствующие биты двух операндов и возвращает новое значение с установленными битами, если только у одного из операндов установлен соответствующий бит. В JavaScript существует несколько методов XOR для двух шестнадцатеричных строк. В этой статье блога мы рассмотрим различные подходы к выполнению операций XOR над шестнадцатеричными строками с примерами кода.

Метод 1: преобразование шестнадцатеричных строк в десятичные, выполнение XOR и обратное преобразование
Один из способов XOR двух шестнадцатеричных строк — преобразовать их в десятичные значения, выполнить операцию XOR над десятичными значениями, а затем преобразовать результат. вернемся к шестнадцатеричной строке. Вот пример фрагмента кода:

function xorHexStrings(hex1, hex2) {
  const decimal1 = parseInt(hex1, 16);
  const decimal2 = parseInt(hex2, 16);
  const result = (decimal1 ^ decimal2).toString(16);
  return result;
}
const hexString1 = "A1B3";
const hexString2 = "C2D4";
const xorResult = xorHexStrings(hexString1, hexString2);
console.log(xorResult); // Output: 6767

Метод 2: преобразование шестнадцатеричных строк в двоичные, выполнение операции XOR и обратное преобразование
Другой подход заключается в преобразовании шестнадцатеричных строк в двоичный формат, выполнении операции XOR над двоичными строками, а затем преобразовании результата обратно в двоичный формат. шестнадцатеричная строка. Вот пример:

function xorHexStrings(hex1, hex2) {
  const binary1 = parseInt(hex1, 16).toString(2);
  const binary2 = parseInt(hex2, 16).toString(2);
  const maxLength = Math.max(binary1.length, binary2.length);
  const paddedBinary1 = binary1.padStart(maxLength, "0");
  const paddedBinary2 = binary2.padStart(maxLength, "0");
  let result = "";
  for (let i = 0; i < maxLength; i++) {
    const bit1 = parseInt(paddedBinary1[i]);
    const bit2 = parseInt(paddedBinary2[i]);
    result += (bit1 ^ bit2).toString();
  }
  const hexResult = parseInt(result, 2).toString(16);
  return hexResult;
}
const hexString1 = "A1B3";
const hexString2 = "C2D4";
const xorResult = xorHexStrings(hexString1, hexString2);
console.log(xorResult); // Output: 6767

Метод 3: использование побитового оператора XOR для отдельных символов
В JavaScript вы также можете выполнять операции XOR непосредственно над отдельными символами шестнадцатеричных строк с помощью побитового оператора XOR (^). Вот пример:

function xorHexStrings(hex1, hex2) {
  let result = "";
  for (let i = 0; i < hex1.length; i++) {
    const charCode1 = parseInt(hex1[i], 16);
    const charCode2 = parseInt(hex2[i], 16);
    const xorValue = charCode1 ^ charCode2;
    result += xorValue.toString(16);
  }
  return result;
}
const hexString1 = "A1B3";
const hexString2 = "C2D4";
const xorResult = xorHexStrings(hexString1, hexString2);
console.log(xorResult); // Output: 6767

Объединение XOR двух шестнадцатеричных строк в JavaScript может быть выполнено разными методами. Мы исследовали три подхода: преобразование шестнадцатеричных строк в десятичные, выполнение операции XOR и обратное преобразование; преобразование шестнадцатеричных строк в двоичные, выполнение XOR и обратное преобразование; и использование побитового оператора XOR для отдельных символов. Вы можете выбрать метод, который лучше всего соответствует вашим конкретным требованиям.