Постановка проблемы
Учитывая строку в шестнадцатеричной форме:
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 и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.