“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 для отдельных символов. Вы можете выбрать метод, который лучше всего соответствует вашим конкретным требованиям.