Как hex-значение превращается в байты?
как вот это
(0x4732861b1f) - hex
(305790327583) - dec
превращается в это
(b'G2\x86\x1b\x1f') - byte
?? последнее понятно, откуда взялось 4732?
Источник: Stack Overflow на русском
как вот это
(0x4732861b1f) - hex
(305790327583) - dec
превращается в это
(b'G2\x86\x1b\x1f') - byte
?? последнее понятно, откуда взялось 4732?
Это первые два байта (47
и 32
), которые в ASCII превращаются в 'G'
и '2'
.
На вопрос 'как hex
-значение превращается в байты?' ---
Шестнадцатеричная строка (hex
) - это текстовое представление байтов, где каждый байт (8 бит) кодируется двумя символами из диапазона 0-9
, A-F
(или a-f
)
1 байт = 2 hex
-символа (поскольку 16² = 256, что покрывает диапазон 0x00–0xFF
).
Каждый hex
-символ соответствует 4 битам (половине байта).
Допустим, у нас есть hex
-строка "4A2F"
. Как её перевести в байты?
Каждую пару переводим в десятичное число
4A (hex) = 4 × 16 + 10 = 74 (dec)
2F (hex) = 2 × 16 + 15 = 47 (dec)
Получаем последовательность байтов:
[74, 47]
или в шестнадцатеричном виде [0x4A, 0x2F]
.