/
Вопросы и ответы
/
Python
/

Какая функция нужна для перевода в 16 систему в Python?

Какая функция нужна для перевода в 16 систему в Python?

4 года назад

Andrey Moshkov

Ответы

0

Для перевода чисел в шестнадцатеричную систему счисления нужно использовать функцию hex(). Функция возвращает конвертированное число в виде строки:

1
2
3
x = hex(255)

print(x) # => 0xff

4 года назад

Владимир Устянивский

0

Перевод в шестнадцатеричную систему делает встроенная функция hex(). Она возвращает строку с префиксом 0x:

1
2
print(hex(255))   # => 0xff
print(hex(16))    # => 0x10

Без префикса и заглавными буквами

1
2
3
4
print(format(255, "x"))   # => ff
print(format(255, "X"))   # => FF
print(f"{255:04x}")       # => 00ff — с ведущими нулями до 4 знаков
print(f"{255:#x}")        # => 0xff — с префиксом

Обратный перевод

1
2
3
print(int("ff", 16))     # => 255
print(int("0xff", 16))   # => 255 — префикс допустим
print(0xff)              # => 255 — шестнадцатеричный литерал в коде

Как перевести вручную

Делите число на 16 и записывайте остатки. Остатки от 10 до 15 заменяются буквами A–F. Запись читают снизу вверх.

Переведём 500:

1
2
3
500 : 16 = 31, остаток 4
 31 : 16 = 1,  остаток 15 → F
  1 : 16 = 0,  остаток 1

Снизу вверх: 1F4. Проверка: hex(500) → '0x1f4'.

Десятичная101112131415
ШестнадцатеричнаяABCDEF

Где встречается шестнадцатеричная запись

Цвета в CSS:

1
2
r, g, b = 255, 102, 0
print(f"#{r:02x}{g:02x}{b:02x}")  # => #ff6600

Байты и кодировки:

1
2
print(bytes([255, 16]).hex())   # => ff10
print("Привет".encode().hex())  # => d09fd180d0b8d0b2d0b5d182

Ограничения

hex() принимает только целые числа. Для дробных есть метод float.hex(): (0.5).hex() → '0x1.0000000000000p-1'. Отрицательные числа выводятся со знаком: hex(-255) → '-0xff'.

Системы счисления разбирают в бесплатном курсе «Основы Python».

18 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845