Найти в Дзене
Машинное обучение

Подробнее про целые числа В Python

Операции над числами:

a + b

a - b

a * b

a / b

a % b # остаток от деления, 5 % 2 = 1

a // b # целочисленное деление, 5 // 2 = 2

a ** b # возведение в степень, 5 ** 2 = 25

-a # смена знака

abs(a) # модуль числа

...

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

a | b # побитовое или, 5 | 2 = 7 (101 | 010 = 111)

a ^ b # побитовое исключающее или, 3 ^ 7 = 4 (011 ^ 111 = 100)

a & b # побитовое и, 3 & 4 = 0 (011 & 100 = 0)

a << b # битовый сдвиг влево, 2 << 1 = 4 (10 << 1 = 100)

a >> b # битовый сдвиг вправо, 4 >> 1 = 2 (100 >> 1 = 10)

Инверсия в питоне определяется как -(x + 1)

Это связано с представлением отрицательных чисел в языке

Отсюда следует, что ~5 = -6

Почему это так работает?

Число 1 с помощью 4 битов представляется как 0001

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

К примеру, запишем числа из диапазона -8 до 7 с помощью 4 битов

7 = 0111

6 = 0110

...

0 = 0000

...

-6 = 1010

-7 = 1001

-8 = 1000

Таким образом, ~5 = -6, так как ~0101 = 1010

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

Записать число в другой сс:

a = 0b101 # двоичная сс, a = 5

a = 0x1f # шестнадцатеричная сс, a = 31

Python RU