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 - значение пременной