#python #binary #base64
#python #двоичный #base64
Вопрос:
Итак, у меня есть двоичное число, 001000
т.е. 8
.
Если я это сделаю base64.b64encode(001000)
, я получу сообщение об ошибке.
Итак, я делаю base64.b64encode(b'001000')
и получаю b'MDAxMDAw'
.
Но мне нужно получить символ base64 в индексе исходного числа 001000
или 8, который в данном случае будет 'I'
. Или, если число было 011100
(28), тогда соответствующий символ в таблице base64 со значением 28 будет: 'd'
.
Например: вот некоторые значения в таблице b64
0 == A, 1 == B, 2 == C, 3 == D, 4 == E
Итак, что я хочу сделать: сначала преобразуйте двоичное число в десятичное (000011 == 3)
. Затем возьмите это число и сравните его с таблицей base64, и вы увидите, что 3
или 000011
равно 'D'
.
Кто-нибудь знает, как я мог бы это сделать?
Комментарии:
1. ты пытался
0b001000
?2. если вы это сделаете
base64.b64encode(b'0b001000')
, вы получитеb'MGIwMDEwMDA='
3. или, если вы это сделаете
base64.b64encode(0b001000)
, вы получите сообщение об ошибке
Ответ №1:
Если я правильно понимаю, следующее должно делать то, что вы хотите:
base64.b64encode(bytes([0b001000]))
Объяснение:
0b001000
:0b
обозначение возвращает целое число 8[0b001000]
: создает массив длиной 1bytes([0b001000])
: преобразует итерацию в байтыb64encode(bytes([0b001000]))
: преобразует эти байты в кодировку base64
Комментарии:
1. это вернулось
b'CA=='
для меня, но то, на что я надеялся, было'I'
2. если вы посмотрите на таблицу base64, вы увидите столбец значений и столбец символов, а поскольку значение ‘I’ равно 8, когда я это делаю
001000
, я ожидал «I», в любом случае спасибо3.
CA==
это кодировка байта в base640001000
, верно? Откуда'I'
берется?4. ну,
001000
в десятичной8
системе счисления и в таблице base64 ‘I’ в base64 равно 8 в десятичной системе счисления, верно?5. извините, если это сбивает с толку