Python: перевод десятичного числа в двоичное, восьмеричное и шестнадцатеричное

Десятичная система — самая привычная в быту, но процессор оперирует двоичными числами. Восьмеричная и шестнадцатеричная системы тесно связаны с двоичной и часто используются в программировании.

В десятичной системе 10 цифр (0–9), в двоичной — 2, в восьмеричной — 8, в шестнадцатеричной — 16. В Python принято обозначать числа разной системы префиксами: 0b — двоичное, 0o — восьмеричное, 0x — шестнадцатеричное. Например:

60 = 0b11100 = 0o74 = 0x3c

Что нужно знать


Пример

# Python program to convert decimal into other number systems
dec = 344

print("The decimal value of", dec, "is:")
print(bin(dec), "in binary.")
print(oct(dec), "in octal.")
print(hex(dec), "in hexadecimal.")

Вывод

The decimal value of 344 is:
0b101011000 in binary.
0o530 in octal.
0x158 in hexadecimal.

Как это работает

В программе используются три встроенные функции:

  • bin() — переводит число в двоичный вид и возвращает строку, начинающуюся с 0b.

  • oct() — переводит в восьмеричный вид (префикс 0o).

  • hex() — переводит в шестнадцатеричный (префикс 0x).

Все три функции принимают целое десятичное число и возвращают строку. Чтобы попробовать программу с другими числами, достаточно изменить значение переменной dec.