Во многих сценариях программирования важно преобразовывать данные между различными представлениями. Одним из распространенных преобразований является преобразование между байтовыми массивами и шестнадцатеричными строками. В этой статье мы рассмотрим несколько методов выполнения этого преобразования на различных языках программирования. Независимо от того, являетесь ли вы новичком или опытным разработчиком, в этом руководстве вы найдете примеры кода, позволяющие легко преобразовывать массивы байтов в шестнадцатеричные строки и наоборот.
Методы преобразования байтового массива в шестнадцатеричную строку:
Метод 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. Предпочитаете ли вы использовать циклы, встроенные функции или внешние библиотеки, теперь у вас есть широкий выбор вариантов. Используя эти методы, вы можете легко преобразовывать данные между байтовыми массивами и шестнадцатеричными строками в своих проектах.