как print работает с двоичными данными и как их отображает и как работает функция python bytes? - PullRequest
0 голосов
/ 19 апреля 2020

Если я наберу этот код, то результат будет: b'd '

a = bytes([100])
print(type(a))
print(a)

Я знаю, что d в шестнадцатеричном формате - это число 100, и кажется, что python print показывает, что данные имеют тип двоичный из-за того, что буква будет в выходных данных, так почему же результат, когда я сохраняю десятичное число 100 в двоичном виде в переменной, которая будет 1100100

, поэтому

a = 1100100    #in binary

и тип (a ) также возвращают двоичный тип

, так что является причиной того, что функция печати печатает в виде двоичной (b) буквы в начале и в то же время представляет число в шестнадцатеричном представлении ASCII, которое равно d

или это потому, что сохраненное число является шестнадцатеричным, или что именно происходит, потому что это сейчас так сбивает с толку меня, так что если кто-то может ответить на эти вопросы

  • как переменная a представлена ​​в меомерии сейчас
  • почему print показывает это странное поведение по крайней мере для меня
  • и является переменной шестнадцатеричным или двоичным числом

1 Ответ

0 голосов
/ 19 апреля 2020

Буква b является короткой для байтов. Так что это ни шестнадцатеричное, ни двоичное число, это список байтов. Функция байтов по умолчанию __str__, используемая при вызове print(a), пытается декодировать байты в строку, поэтому вы видите букву d.

...