преобразовать шестнадцатеричное в двоичное и наоборот, но сохраняя их как целые числа - PullRequest
0 голосов
/ 27 октября 2018

Я знаю, как преобразовать шестнадцатеричное целое в двоичную строку с помощью функции bin, но есть ли простой способ преобразовать шестнадцатеричное целое в двоичное целое ?

Выражено по-другому, есть ли простой способ преобразовать строковое представление двоичного целого числа ("0b111") в целое число, представляющее двоичное целое число (0b111)

Использование bin () приводит к шестнадцатеричной строке

>>> bin(0x7)
'0b111'
>>> type(bin(0x7))
<class 'str'>

Но чего я хочу добиться, так это:

>>> magic(0x7)
0b111
>>> type(magic(0x7))
<class 'int'>

(Волшебная функция - это просто заполнитель, по сути, я хочу преобразовать строковое представление двоичного целого числа в двоичноецелое число)

  • Вопрос 1: Возможно ли это как-то, если да, то как?
  • Вопрос 2: Имеет ли смысл делатьтак?Лучше ли работать с строковыми представлениями или целочисленными представлениями шестнадцатеричных и двоичных чисел?

1 Ответ

0 голосов
/ 27 октября 2018

Нет никакой разницы между тем, что вы называете "шестнадцатеричным целым числом" и "двоичным целым числом" - оба они просто целые числа:

>>> 0x07
7
>>> 0b111
7
>>> type(0x07)
<type 'int'>
>>> type(0b111)
<type 'int'>
>>> 0x07 == 0b111
True
>>> 0x07 is 0b111  # This is true in the special case of small integers
True

Префикс 0x или 0b - это просто способ сообщить переводчику, как читать введенные вами данные.

Что касается преобразования двоичного строкового представления целого числа в фактическое целое число, вы можете сделать это с помощью int(string, base):

>>> int('0b111', 2)
7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...