int¶
- class
int
(obj[, mode=10]) Возвращает число
mode - система исчисления, от 2 до 36
Возбуждает
ValueError
если преобразование не возможноint('1') # 1 int ("71s") """ Traceback (most recent са11 1ast): File "<pyshell#9>", line 1, in <modu1e> int ("71s") Va1ueError: inva1id 1itera1 for int() with base 10: '71s' """
5 + 5 # 10 10 - 5 # 5 5 * 5 # 25 10 / 5 # 2 10 % 2 # 0 10 % 3 # 1 10 ** 3 # 1000
a = 0 a += 3 # 3 a -= 1 # 2 a *= 10 # 20 a /= 2 # 10 a %= 4 # 2 a **= 2 # 4 a &= 1 # аналогичен a = a & 1 a |= 1 # аналогичен a = a | 1 a ^= 1 # аналогичен a = a ^ 1 a >>= 1 # аналогичен a = a >> 1 a <<= 1 # аналогичен a = a << 1
0b101101 # двоичное число, 45 0o12 # восьмиречное число, 10 0xA # шестнадцатеричное число, 10
Битовые операции¶
# Битовое ИЛИ чисел x и y x = 100 # 01100100 y = 75 # 01001011 x | y # 01101111# Битовое исключающее ИЛИ чисел x и y x = 100 # 01100100 y = 250 # 11111010 x ^ y # 10011110# Битовое И чисел x и y x = 100 # 01100100 y = 75 # 01001011 x & y # 01000000# Число, полученное на основе x, биты которого сдвинуты на n влево. # Эквивалентно умножению числа x на двойку в степени n, (x * (2 ** n). # Отличается очень высокой скоростью выполнения по сравнению с обычным умножением x = 100 # 01100100 x << 1 # 11001000 x << 2 # 10010000 x = -127 # 10000001 x << 1 ## Число, полученное на основе x, биты которого сдвинуты на n вправо. # Эквивалентно делению числа x на двойку в степени n, (x / (2 ** n)). # Отличается очень высокой скоростью выполнения по сравнению с обычным делением # если число отрицательное, разряды слева заполняются 1 x = 100 # 01100100 x >> 1 # 00110010 x >> 2 # 00011001 x = -127 # 10000001 x >> 2 # 11100000# Число, полученное на основе x, все биты которого инвертированы. x = 100 # 01100100 ~x # 10011011
Реализация на С¶
struct _longobject {
long ob_refcnt;
PyTypeObject *ob_type;
size_t ob_size;
long ob_digit[1];
};
ob_refcnt - счетчик ссылок на объект
ob_type - тип объекта
ob_size - размер данных
ob_digit - значение пременной