Pesquise qual o tamanho (em bits) de uma variável float em Python e qual padrão (formato) IEEE 754 ela segue?
Passo 1
Beleza, aqui a gente precisa descobrir duas coisas: o tamanho em bits de uma variável
float
em Python e qual padrão IEEE 754 ela segue. Isso cai na matéria de representação de números de ponto flutuante em computação. Para resolver, vamos ver como o Python implementa float
(hint: é um C double) e depois checar qual formato IEEE 754 corresponde a isso.Passo 2
Em Python (na implementação mais usada, o CPython), o tipo
– Um
– Como cada byte tem 8 bits, isso dá
float
é exatamente o mesmo que o tipo double
em C.– Um
double
em C ocupa 8 bytes de memória.– Como cada byte tem 8 bits, isso dá
Ou seja, um
float
em Python ocupa 64 bits.Passo 3
Agora, qual padrão IEEE 754 isso segue? A norma IEEE 754 define vários formatos de ponto flutuante, os mais comuns são:
– Single precision (32 bits, chamado binary32)
– Double precision (64 bits, chamado binary64)
Como o Python usa 64 bits, ele está seguindo exatamente o formato double precision, também conhecido como binary64.
– Single precision (32 bits, chamado binary32)
– Double precision (64 bits, chamado binary64)
Como o Python usa 64 bits, ele está seguindo exatamente o formato double precision, também conhecido como binary64.
Passo 4
Para ficar claro como esses 64 bits são divididos no formato IEEE 754 binary64:
– 1 bit de sinal ( )
– 11 bits de expoente ( )
– 52 bits de mantissa/fracionário ( )
– 1 bit de sinal (
– 11 bits de expoente (
– 52 bits de mantissa/fracionário (
O valor representado é calculado como
onde “
” significa “1 ponto fracionário” (o bit antes do ponto é sempre 1, exceto em casos subnormais) e o bias do expoente é 1023.
Resposta
Um
float
em Python tem 64 bits e segue o padrão IEEE 754 double precision (binary64).