Функция перевода в двоичную систему python

Функция перевода в двоичную систему python

Закрепим пройденный материал с функциями и создадим реальный пример функции, которая вычисляет что-нибудь интересное.

Пожалуй, всякий начинающий программист должен написать самостоятельно программу перевода целого двоичного числа в десятичное. Именно этим мы и займёмся в этом примере.

Использование готовой функции перевода двоичного числа

На Питоне конечно уже есть готовое и весьма простое решение, которое делает перевод двоичной записи в десятичное число.

К примеру, есть функция int([object], [основание системы счисления]) — преобразование к целому числа в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от 2 до 36 включительно.

В нашем случае, выбираем основание 2.

Вот пример выполнения этого кода:

Но мы ведь не ищем лёгких путей, а создаём свою функцию. Поэтому код будет следующий.

При помощи def задаём имя функции с соответствующим названием bin_to_dec и внутреннюю переменную.

Функция len(digit) будет возвращать длину числа или количество символов

Это необходимо, чтобы вычислить, сколько проходов будет для вычисления общей суммы по известной в информатике формуле перевода числа из двоичной формы в десятичную.

Проходы делает оператор цикла for i in range(0, dlina), где и i меняется от значения 0 до общего количества.

2**(dlina-i-1) — двойка как основание возводится в степень (dlina-i-1)

А вот эта конструкция вычисляет сумму, которая и будет числом в десятичной форме.

Пример выполнения программы показан на рисунке.

Конечно, данная функция достаточно простая и не имеет защиты от неправильного ввода, однако для образовательного примера вполне сгодится. Пробуем выполнить по памяти пример, а затем создать свои функции на Питоне.

Заметим, что в языке Python есть встроенная функция bin(), которая переводит десятичное число в двоичную систему счисления:

Читайте также:  Amd phenom ii x4 965 драйвер

Здесь же рассматривается алгоритм такого перевода и его реализация на Python.

Обычно десятичное число преобразуют к двоичному представлению путем нахождения остатков от деления на 2. При этом полученное на предыдущем шаге частное выступает в качестве делимого на следующем шаге. Деление заканчивается, когда делимое обращается в ноль. Остатки собираются в двоичное число начиная с конца, то есть последний остаток будет первой цифрой двоичного числа. Например, надо перевести число 8 в двоичную систему:

  • 8 / 2 = 4, остаток 0
  • 4 / 2 = 2, остаток 0
  • 2 / 2 = 1, остаток 0
  • 1 / 2 = 0, остаток 1
  • 0 — конец деления
  • Сборка: 10002

При реализации данного алгоритма с помощью языка программирования надо организовать хранение остатков. Сделать это можно в переменной строкового типа или в списке. В случае строки каждый новый остаток следует добавлять в начало.

Числа в Python 3: целые, вещественные, комплексные. Работа с числами и операции над ними.

Целые числа (int)

Числа в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций:

x + y Сложение
x — y Вычитание
x * y Умножение
x / y Деление
x // y Получение целой части от деления
x % y Остаток от деления
-x Смена знака числа
abs(x) Модуль числа
divmod(x, y) Пара (x // y, x % y)
x ** y Возведение в степень
pow(x, y[, z]) x y по модулю (если модуль задан)

Также нужно отметить, что целые числа в python 3, в отличие от многих других языков, поддерживают длинную арифметику (однако, это требует больше памяти).

Битовые операции

Над целыми числами также можно производить битовые операции

x

x | y Побитовое или
x ^ y Побитовое исключающее или
x & y Побитовое и
x > y Битовый сдвиг вправо
Инверсия битов

Дополнительные методы

int.bit_length() — количество бит, необходимых для представления числа в двоичном виде, без учёта знака и лидирующих нулей.

Читайте также:  Blackview bv7000 pro 64gb

int.to_bytes(length, byteorder, *, signed=False) — возвращает строку байтов, представляющих это число.

Системы счисления

Те, у кого в школе была информатика, знают, что числа могут быть представлены не только в десятичной системе счисления. К примеру, в компьютере используется двоичный код, и, к примеру, число 19 в двоичной системе счисления будет выглядеть как 10011. Также иногда нужно переводить числа из одной системы счисления в другую. Python для этого предоставляет несколько функций:

  • int([object], [основание системы счисления]) — преобразование к целому числу в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от 2 до 36 включительно.
  • bin(x) — преобразование целого числа в двоичную строку.
  • hex(х) — преобразование целого числа в шестнадцатеричную строку.
  • oct(х) — преобразование целого числа в восьмеричную строку.

Вещественные числа (float)

Вещественные числа поддерживают те же операции, что и целые. Однако (из-за представления чисел в компьютере) вещественные числа неточны, и это может привести к ошибкам:

Для высокой точности используют другие объекты (например Decimal и Fraction)).

Также вещественные числа не поддерживают длинную арифметику:

Простенькие примеры работы с числами:

Дополнительные методы

float.as_integer_ratio() — пара целых чисел, чьё отношение равно этому числу.

float.is_integer() — является ли значение целым числом.

float.hex() — переводит float в hex (шестнадцатеричную систему счисления).

classmethod float.fromhex(s) — float из шестнадцатеричной строки.

Помимо стандартных выражений для работы с числами (а в Python их не так уж и много), в составе Python есть несколько полезных модулей.

Модуль math предоставляет более сложные математические функции.

Модуль random реализует генератор случайных чисел и функции случайного выбора.

Читайте также:  Схема осциллографа с1 118а

Комплексные числа (complex)

В Python встроены также и комплексные числа:

Также для работы с комплексными числами используется также модуль cmath.

Ссылка на основную публикацию
Adblock detector