Перевод в двоичную систему счисления python

Python. Числа и операции с ними. Встроенные функции int(), bin(), oct(), hex(), float(), complex(), (6)

Числа и операции с ними

В Python числа могут быть целыми (int), вещественными (float) и комплексными (complex).

Целое число в десятичной форме ничем не отличается от обыкновенного числа, например — 1

Целое число в двоичной форме имеет вид — 0b111. Перед числом стоит 0b, дальше следует само число в двоичной форме 111.

Целое число в восьмеричной форме имеет вид – 0o8. Перед числом стоит 0o (ноль и буква о), дальше следует само число в восьмеричной форме 8.

Целое число в шестнадцатеричной форме имеет вид – 0xAF. Перед числом стоит 0x, дальше следует само число в двоичной форме AF.

Существуют встроенные функции для преобразования целого числа из одной системы исчисления в другую. В двоичное число bin(), в восьмеричное число(oct()) и шестнадцатеричное число(hex().

Для преобразования в десятичное число существует встроенная функция int()

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

Преобразуем строку в целое число.

Преобразуем вещественное число в целое число (дробная часть отбрасывается без округления):

Преобразуем число из тридцатеричной системе исчислений в целое десятичное число.

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

Traceback (most recent call last):

Python Shell, prompt 12, line 1

builtins.TypeError: int() can’t convert non-string with explicit base

Для преобразования целого числа в двоичную форму используется функция bin(). Функция bin() принимает один аргумент – целое десятичное число. Возвращает строку (str).

Для преобразования целого числа в восьмеричную форму используется функция oct(). Функция oct() принимает один аргумент – целое число. Возвращает строку.

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

Вещественные числа (float). Встроенная функция float()

Как я понял вещественные, числа с дробной частью и числа с плавающей запятой это разные названия числа вида: 7.0 или 77.12 и т.д и т.п.

Получить вещественное число можно с помощью функции float(). Аргумент у функции один и он может быть числом или строкой. Возвращает число типа float.

Передаем функции float() аргумент в виде целого числа.

Передаем функции float() аргумент в виде строки (str).

Комплексные числа (complex). Встроенная функция compex()

Числа содержащие мнимую часть и имеют вид:

Для преобразования в комплексное число есть функция complex(). Она имеет два аргумента первый действительная часть, второй аргумент мнимая часть. Оба аргумента должны быть целыми числами(int) или вещественными числами (float). Возвращает комплексное число (complex).

Математику я учил давно и до сих пор так и не встретил случая, где бы я мог применить их. Так, что на данный момент можно констатировать, что в Python есть комплексные числа и это пока все.

>>>1 + 2 сложение целого числа с целым получаем

>>>1.0 + 2 сложение вещественного числа с целым получаем

3.0 вещественное число

>>>3 + 5 +(1 + 7.0) если в выражении есть вещественное число результатом всегда будет

16.0 вещественное число

>>>5 – 3 Вычитаем из целого числа целое число получаем

>>>5 — 3.0 Вычитаем из целого числа вещественное число получаем

2.0 вещественное число

>>>2 * 3 Умножаем целое число на целое число получаем

>>>2 * 3.0 Умножаем целое число на вещественное число получаем

6.0 вещественное число

Деления в Python три:

>>>4 / 2 Делим целое число на целое число получаем

2.0 вещественное число

>>>4.0 / 2.0 Делим вещественное число на вещественное число
получаем

2.0 вещественное число

// Целочисленное деление – деление с округлением к меньшему. При таком округлении дробная часть отбрасывается, а целая часть округляется в меньшую сторону.

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

>>>5 // 2 Делим целое число на целое число получаем

>>>-3.0 // -2 Делим вещественное число на целое число получаем

1.0 вещественное число

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

>>>5 // -2 Делим целое число на целое число получаем

-3 целое число, так то получаем -2.5, округляем к
меньшему получаем — 3

>>>-6.0 // 2.5 Делим вещественное число на вещественное число
получаем

-3.0 вещественное число

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

>>>300 % 80 Делим по модулю получаем после деления на цело

>>>5.0 % 100 Делим по модулю получаем

5.0 т.к. 5 на 100 без получения дробной части не делится
ответ — 5

** Возведение в степень

>>>5 ** 2 Возводим целое число в степень тоже целое число
получаем

>>>2.0 ** 4 возводим вещественное число в степень (целое число)
получаем

16.0 вещественное число

Как видно из примеров если в выражении присутствует вещественное число, то ответом будет – вещественное число.

Приоритет выполнения операций как в арифметике.

>>>5 + 190 // 2 ** 2 % 10 * 5 / 4 — 2

Операции выполняются слева-направо и согласно приоритета.

1. Возведение в степень 2**2 = 4

2. Целочисленное деление 190//4=47

3. Деление по модулю 47%10=7

6. Сложение 5+8.75=13.75

7. Вычитание 13.75-2=11.75

Самый старший приоритет — возведение в степень

Следующий приоритет — Умножение *, Деление /, Целочисленное деление //, Деление по модулю % у этих операция приоритет одинаковый если они встречаются в одном примере то выполняются в порядке очереди слева-направо.

Следующий приоритет у сложения + и вычитания они выполняются самыми последними.

Если необходимо поменять приоритеты операций нужно воспользоваться скобками. Операции в скобках выполняются первыми.

Это все что я вычитал про числа.

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

Источник

Преобразование дробного числа к двоичной системе счисления

Как преобразовать дробное десятичное число в двоичную систему счисления?

Для перевода целой части можете использовать функцию bin() , например

К десятинной части можете затем применить метод .hex() класса float , например

дает ‘0x1.07ae147ae147bp-1’ — или 0.107ae147ae147b ( p-1 значит сдвиг точки о 1 позицию влево).

Затем вы можете на одиночные цифры применить знакомую таблицу
( 0 — 0000 , 1 — 0001 , … f — 1111 ) на перевод до бинарной формы:

(пробелы только для разборчивости). Пример кода:

math.modf вариант: 0.510 = 0.12

Если у вас на входе число типа float, а на выходе вы хотите получить это число в двоичной системе (основание 2) как строку, то можно использовать math.modf() функцию, чтобы разбить число на целую и дробную части и вызвать float.as_integer_ratio() метод, чтобы представить дробь в виде отношения целых чисел, затем числитель в двоичной системе напечатать, с помощью b формата. Знаменатель является степенью двойки и определяет ширину дробной части в двоичной системе:

float.hex вариант в научной нотации: 0.510 = 0b1.0p-1

Чтобы получить строку в научной нотации (целая часть либо ровно 0 либо 1), то относительно лёгкий способ это злоупотребить шестнадцатеричным представлением:

math.frexp вариант

float уже хранится в двоичном представлении в компьютере. Можно использовать math.frexp(f) , чтобы разложить число с плавающей точкой на составляющие f = m * 2**e :

Все примеры в ответе точное представление получают, неточные вычисления не используются.

Источник

Числа: целые, вещественные, комплексные

Числа в 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, в отличие от многих других языков, поддерживают длинную арифметику (однако, это требует больше памяти).

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

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

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

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

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

classmethod int.from_bytes(bytes, 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 реализует генератор случайных чисел и функции случайного выбора.

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

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

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

Источник

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Uchenik.top - научные работы и подготовка
0 0 голоса
Article Rating
Подписаться
Уведомить о
guest
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
x | y Побитовое или
x ^ y Побитовое исключающее или
x & y Побитовое и
x > y Битовый сдвиг вправо