Рубрики
Без рубрики

Как преобразовать шестигранную строку в целое число в Python

Сортировка задачи Дана строка в шестнадцатеричной форме: # или: Как преобразовать шестигранную строку в целое число в Python? Например, вы хотите преобразовать шестнадцатеричную строку «0xFF» в десятичное целое число 255. Вот несколько других примеров: 0x0 -> 0 0x4 -> 4 0x8 … Как конвертировать шестигранную строку в целое число в Python Подробнее »

Автор оригинала: Chris.

Постановка проблемы

Учитывая строку в шестнадцатеричной форме:

s = '0xff'
# or: s = 'ff'

Как преобразовать шестигранную строку в целое число в Python?

Например, вы хотите преобразовать шестнадцатеричную строку '0xff' до десятичного целого числа 255 Отказ

Вот несколько других примеров:

0x0   -->   0
0x4   -->   4
0x8   -->   8
0x12   -->   18
0x16   -->   22
0x20   -->   32
0x24   -->   36
0x28   -->   40

Шестигранная строка для целочисленного использования INT () с базой 16

Чтобы преобразовать шестнадцатеричную строку в целое число, пропустите строку в качестве первого аргумента в Python’s Встроенный INT () функция. Использовать база = 16 Как второй аргумент int () Функция Укажите, что заданная строка – это номер шестигранства. int () Затем функция преобразует шестигранную строку в целое число с базой 10 и вернуть результат.

Вот минимальный пример:

>>> int('0xff', base=16)
255

Примеры

И вот как вы можете преобразовать дополнительные примеры, показанные выше:

>>> int('0x0', base=16)
0
>>> int('0x4', base=16)
4
>>> int('0x8', base=16)
8
>>> int('0x12', base=16)
18
>>> int('0x16', base=16)
22
>>> int('0x20', base=16)
32
>>> int('0x24', base=16)
36
>>> int('0x28', base=16)
40

Вам на самом деле не нужно использовать префикс '0x' Поскольку ваш второй аргумент уже однозначно определяет, что данная строка является шестнадцатеричным числом:

>>> int('0', base=16)
0
>>> int('4', base=16)
4
>>> int('8', base=16)
8
>>> int('12', base=16)
18
>>> int('16', base=16)
22
>>> int('20', base=16)
32
>>> int('24', base=16)
36
>>> int('28', base=16)
40

Тем не менее, пропуская базу, но оставляя префикс, поднимает ValueError: Неверный литерал для INT () с базой 10: '0x28' :

>>> int('0x28')
Traceback (most recent call last):
  File "", line 1, in 
    int('0x28')
ValueError: invalid literal for int() with base 10: '0x28'

Предполагается, что входная строка находится в базе 10, когда на самом деле это не так.

💡 Примечание Несмотря на то, что проезжают префиксную строку '0x ...' в int () Функция однозначная, Python’s int () Функция не принимает это, если вы также не определяете базу. Это может быть исправлено в будущем Версии !

На самом деле, вы можете указать базовый аргумент как 0, чтобы включить базовое угадать – что в любом случае должно быть поведение по умолчанию!

База угадывания

Вы можете пройти префиксную строку '0x ...' в int () Функция и установить базу до 0, чтобы включить базу гадания в Python. Это использует префикс для определения базы автоматически – без необходимости установить его на 16 Отказ Тем не менее, вы все еще должны установить это на 0 Так что преимущество является предельной на практике.

>>> int('0x9', base=16)
9
>>> int('0x9', base=0)
9
>>> int('0x9', 0)
9

Преобразование шестигранных литералов в INT

Если у вас нет шестигранной строки, а шестнадцатеричный номер называется буквальный -Such как 0xff Вам даже не нужен int () Функция, потому что Python автоматически преобразует его в десятичное число:

>>> 0x10
16
>>> 0xff
255

Фон int ()

Syntax: int(value [, base])    -->   int
Аргумент стоимость Объект Python будет преобразован в целочисленное число. Объект Value должен иметь метод __int __ (), который возвращает связанный целочисленный номер – в противном случае будет поднят тип yumpeRor.
основание Дополнительный целочисленный аргумент базы для определения основания численной системы в аргументе значений. Если вы устанавливаете основание, аргумент значения должен быть строкой. Базовый аргумент определяет, как интерпретация строкового аргумента.
Возвращаемое значение int. Возвращает целочисленное число после преобразования значения аргумента ввода, используя его необходимый метод __int __ () для преобразования.

Вам еще нужно больше справочной информации о Python’s Встроенный int () функция? Нет проблем, прочитайте соответствующее учебное пособие.

Похожие учебники: Функция встроенного INT () Python

Hex для INT стол

Просто для удовольствия, вот шестнадцатеричный, чтобы включить преобразования полномочий двух:

1 1
2 2
4 4
8 8
16dec. 10hex.
32dec. 20Hex.
64dec. 40Hex.
128dec. 80Hex.
256dec. 100Hex.
512dec. 200hex.
1024dec. 400Hex.
2048dec. 800hex.
4096dec. 1000Hex.
8192DEC. 2000Hex.
16,384DEC. 4000Hex.
32 768дек 8000Hex.
65,536дек 10000Hex.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.