Bin: примеры (PYTHON)

Преобразование чисел функцией bin в Python
Раздел: Встроенные функции, Преобразование типов
bin(number): str

Функция bin в Python

Функция bin() в языке Python возвращает строковое представление двоичного значения целого числа. Эта функция используется для преобразования целых чисел в двоичную систему счисления с префиксом '0b', который указывает на двоичный формат.

Синтаксис функции: bin(x), где x - целое число, которое необходимо преобразовать. Если аргумент не является целым числом, метод __index__() объекта вызывается для получения целого значения.

Возвращаемое значение - строка, начинающаяся с '0b', за которой следуют двоичные цифры, представляющие число. Для отрицательных целых чисел возвращается двоичное представление со знаком минус и префиксом '0b'.

Простые примеры использования

print(bin(10))
0b1010
print(bin(-5))
-0b101
print(bin(0))
0b0
print(bin(255))
0b11111111

Альтернативные функции в Python

format() - позволяет форматировать числа в двоичную систему без префикса '0b' или с другим оформлением: format(10, 'b') возвращает '1010'.

f-строки - поддерживают двоичное форматирование: f'{10:b}' дает результат '1010'.

oct() и hex() - аналогичные функции для восьмеричной и шестнадцатеричной систем счисления.

Аналоги в других языках программирования

JavaScript: метод toString(2) преобразует число в двоичную строку без префикса.

(10).toString(2);
"1010"

Java: Integer.toBinaryString() возвращает строку без префикса.

Integer.toBinaryString(10);
"1010"

PHP: функция decbin() преобразует десятичное число в двоичную строку.

echo decbin(10);
1010

C#: метод Convert.ToString() с указанием основания системы счисления.

Convert.ToString(10, 2);
"1010"

Распространенные ошибки

Передача нецелочисленного аргумента без метода __index__() вызывает TypeError.

print(bin("10"))
TypeError: 'str' object cannot be interpreted as an integer

Использование чисел с плавающей точкой также приводит к ошибке.

print(bin(3.14))
TypeError: 'float' object cannot be interpreted as an integer

Изменения в последних версиях Python

В Python 3.11 была оптимизирована производительность функции bin() для больших целых чисел. Значительных синтаксических изменений или добавления новых параметров не происходило с момента введения в Python 2.6.

Расширенные примеры применения

Использование с пользовательскими классами, реализующими метод __index__():

Пример python
class CustomNumber:
    def __init__(self, value):
        self.value = value
    def __index__(self):
        return self.value

num = CustomNumber(42)
print(bin(num))
0b101010

Преобразование двоичного представления обратно в целое число:

Пример python
binary_str = bin(10)[2:]  # Удаляем '0b'
original_int = int(binary_str, 2)
print(original_int)
10

Использование в битовых операциях для анализа флагов:

Пример python
flags = 0b1101
print(bin(flags & 0b0100))  # Проверка третьего бита
0b100

Форматирование вывода с заполнением нулями:

Пример python
num = 5
binary_padded = format(num, '08b')
print(binary_padded)
00000101

питон bin function comments

En
Bin Convert to binary string