Inteiros Python

Resumo : neste tutorial, você aprenderá sobre inteiros Python e como Python armazena inteiros na memória.

Inteiros são números inteiros que incluem números negativos, zero e números positivos como -3, -2, -1, 0, 1, 2, 3.

Python usa a classe intpara representar todos os números inteiros. Todos os inteiros são objetos.

Como os computadores armazenam números inteiros

Os computadores não podem armazenar números inteiros diretamente. Em vez disso, eles só podem armazenar números binários como 0 e 1.

Para armazenar inteiros, os computadores precisam usar números binários para representar os inteiros.

Por exemplo, para armazenar o número 5, os computadores precisam representá-lo usando um número de base 2:

5 = 1 x 2 2 + 0 x 2 1 + 1 x 2 0

Como você pode ver, são necessários 3 bits para armazenar o número 5 na memória:

(101) 2 = (5) 10

Suponha que você tenha 8 bits, você pode armazenar até 255 inteiros de zero a 255:

255= 1x 2 7 + 1 x 2 6 + 1 x 2 5 + 1x 2 4 + 1 x 2 3 + 1 x 2 2 + 1x 2 1 + 1 x 2 0

Usando 8 bits, você pode armazenar até 2 8 – 1 = 255 inteiros.

Para armazenar inteiros negativos, zero e inteiros positivos, você precisa reservar 1 bit para armazenar o sinal negativo (-) e positivo (+). Portanto, com 8 bits:

  • O maior número inteiro que os computadores podem representar é 2 7 = 127.
  • E os computadores podem armazenar todos os números inteiros no intervalo (-127, 127)

Como o número zero não tem sinal, os computadores podem extrair um número extra. Portanto, 8 bits podem armazenar todos os números inteiros de -128 a 127.

8 bits = [-2 7 , 2 7 – 1]

Da mesma forma, se você quiser usar 16 bits, 32 bits e 64 bits para armazenar números inteiros, os intervalos seriam:

  • 16 bits ~ [-2 15 , 2 15 – 1] = [ -32,768, 32,767]
  • 32 bits ~ [-2 31 , 2 31 – 1] = [- 2,147,483,648, 2,147,483,647]
  • 64 bits ~ [-2 63 , 2 63 – 1] = [ -9,223,372,036,854,775,808, 9,223,372,036,854,775,807]

Como Python representa inteiros

Outras linguagens de programação, como Java e C#, usam um número fixo de bits para armazenar números inteiros.

Por exemplo, C# tem o inttipo que usa 32 bits e o longtipo que usa 64 bits para representar números inteiros. Com base nos tipos de números inteiros, você pode determinar os intervalos de números inteiros que esses tipos podem representar.

Python, entretanto, não usa um número fixo de bits para armazenar números inteiros. Em vez disso, Python usa um número variável de bits para armazenar inteiros . Por exemplo, 8 bits, 16 bits, 32 bits, 64 bits, 128 bits e assim por diante.

O número inteiro máximo que o Python pode representar depende da memória disponível.

Além disso, inteiros são objetos. Python precisa de um número fixo extra de bytes como sobrecarga para cada número inteiro.

É importante observar que quanto maiores forem os números inteiros, mais lentos serão os cálculos como +, ,….-

Tipo interno do Python

O seguinte define uma variável que faz referência a um número inteiro e usa a type()função para obter o nome da classe do número inteiro:

counter = 10
print(type(counter))Linguagem de código:  Python  ( python )

Saída:

<class 'int'>Linguagem de código:  Python  ( python )

Como você pode ver claramente na saída, um inteiro é uma instância da classe int.

Obtendo o tamanho de um número inteiro

Para obter o tamanho de um número inteiro, você usa a getsizeof()função do sysmódulo.

A getsizeof()função retorna o número de bytes que Python usa para representar um número inteiro. Por exemplo:

from sys import getsizeof

counter = 0
size = getsizeof(counter)

print(size)  # 24 bytesLinguagem de código:  Python  ( python )

Saída:

24Linguagem de código:  Python  ( python )

Para armazenar o número 0, Python usa 24 bytes. Desde que armazenou o número zero, o Python precisa usar apenas 1 bit. Observe que 1 byte equivale a 8 bits.

Portanto, você pode pensar que Python usa 24 bytes como sobrecarga para armazenar um objeto inteiro.

O seguinte retorna o tamanho do número inteiro 100:

from sys import getsizeof

counter = 100
size = getsizeof(counter)

print(size)  # 28 bytesLinguagem de código:  Python  ( python )

Saída:

28Linguagem de código:  Python  ( python )

Ele retorna 28 bytes. Como 24 bytes é uma sobrecarga, o Python usa 4 bytes para representar o número 100.

O seguinte mostra o tamanho do número inteiro 2 64 :

from sys import getsizeof

counter = 2**64
size = getsizeof(counter)

print(size)  # 36 bytesLinguagem de código:  Python  ( python )

Saída:

36Linguagem de código:  Python  ( python )

Portanto, para armazenar o número inteiro 2 64 , o Python usa 36 bytes.

Operações inteiras em Python

Os inteiros Python suportam todas as operações padrão, incluindo:

  • Adição +
  • Subtração –
  • Multiplicação *
  • Divisão /
  • Expoentes **

O resultado da adição, subtração, multiplicação e expoentes de números inteiros é um número inteiro. Por exemplo:

a = 10
b = 20

c = a + b
print(c)
print(type(c))


c = a - b
print(c)
print(type(c))


c = a * b
print(c)
print(type(c))

c = a ** b
print(c)
print(type(c))Linguagem de código:  Python  ( python )

Saída:

30
<class 'int'>
-10
<class 'int'>
200
<class 'int'>
100000000000000000000
<class 'int'>Linguagem de código:  Python  ( python )

Entretanto, a divisão de dois inteiros sempre retorna um número de ponto flutuante. Por exemplo:

a = 10
b = 5
c = a / b

print(c)
print(type(c))Linguagem de código:  Python  ( python )

Saída:

2.0
<class 'float'>Linguagem de código:  Python  ( python )

Resumo

  • Inteiros são números inteiros que incluem números inteiros negativos, zero e números inteiros positivos.
  • Os computadores usam números binários para representar inteiros.
  • Python usa um número variável de bits para representar inteiros. Portanto, o maior número inteiro que o Python pode representar depende da memória disponível do computador.
  • Em Python, todos os inteiros são instâncias da classe int.
  • Use a getsizeof()função do sysmódulo para obter o número de bytes de um inteiro.
  • Os inteiros Python suportam todas as operações padrão, incluindo adição, subtração, multiplicação, divisão e expoente.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *