Преобразование байтового массива в шестнадцатеричную строку и наоборот: подробное руководство

Во многих сценариях программирования важно преобразовывать данные между различными представлениями. Одним из распространенных преобразований является преобразование между байтовыми массивами и шестнадцатеричными строками. В этой статье мы рассмотрим несколько методов выполнения этого преобразования на различных языках программирования. Независимо от того, являетесь ли вы новичком или опытным разработчиком, в этом руководстве вы найдете примеры кода, позволяющие легко преобразовывать массивы байтов в шестнадцатеричные строки и наоборот.

Методы преобразования байтового массива в шестнадцатеричную строку:

Метод 1: использование цикла (псевдокода)

function byteArrayToHexString(byteArray):
    hexString = ""
    for byte in byteArray:
        hexString += byte.toHex()
    return hexString

Метод 2: использование встроенных функций (Python)

def byteArrayToHexString(byteArray):
    return ''.join(format(byte, '02x') for byte in byteArray)

Метод 3. Использование BitConverter (C#)

public string ByteArrayToHexString(byte[] byteArray)
{
    return BitConverter.ToString(byteArray).Replace("-", "");
}

Метод 4. Использование кодека Apache Commons (Java)

import org.apache.commons.codec.binary.Hex;
public String byteArrayToHexString(byte[] byteArray) {
    return Hex.encodeHexString(byteArray);
}

Методы преобразования шестнадцатеричной строки в байтовый массив:

Метод 1. Использование цикла (псевдокода)

function hexStringToByteArray(hexString):
    byteArray = []
    for i in range(0, length(hexString), 2):
        byte = hexString[i:i+2]
        byteArray.append(byte.toByte())
    return byteArray

Метод 2: использование встроенных функций (Python)

def hexStringToByteArray(hexString):
    return bytes.fromhex(hexString)

Метод 3. Использование BitConverter (C#)

public byte[] HexStringToByteArray(string hexString)
{
    int length = hexString.Length;
    byte[] byteArray = new byte[length / 2];
    for (int i = 0; i < length; i += 2)
    {
        byteArray[i / 2] = Convert.ToByte(hexString.Substring(i, 2), 16);
    }
    return byteArray;
}

Метод 4. Использование кодека Apache Commons (Java)

import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
public byte[] hexStringToByteArray(String hexString) throws DecoderException {
    return Hex.decodeHex(hexString);
}

Преобразование массивов байтов в шестнадцатеричные строки и наоборот — распространенная задача в программировании. В этой статье мы рассмотрели несколько методов выполнения этого преобразования на нескольких языках программирования, включая Python, C# и Java. Предпочитаете ли вы использовать циклы, встроенные функции или внешние библиотеки, теперь у вас есть широкий выбор вариантов. Используя эти методы, вы можете легко преобразовывать данные между байтовыми массивами и шестнадцатеричными строками в своих проектах.