A diferença real entre inteiros e valores de ponto flutuante

Se um valor de ponto flutuante também pode ser um número inteiro, por que se preocupar com números inteiros em seus programas em tudo? A razão é que valores de ponto flutuante e inteiros são tratados de forma diferente dentro do computador.

Um inteiro existe dentro do computador como um verdadeiro valor binário. Por exemplo, o valor 123 é armazenado em computadores modernos como um valor de 32 bits:

Um verdadeiro valor binário.
Um verdadeiro valor binário.

O bit de sinal determina se o valor é positivo ou negativo (0 é positivo, e 1 é negativo). O resto dos 31 bits são utilizados para representar o valor.

Um número de ponto flutuante, no entanto, não pode existir em um computador que usa binários (1s e 0s). Não seja tolo! Assim, o número de ponto flutuante é inteligentemente falsificado. Usando os mesmos 32 bits, um valor de ponto flutuante de 13,5 pode ter esta aparência:

Um número de ponto flutuante armazenado como um valor binário.
Um número de ponto flutuante armazenado como um valor binário.

Primeiro vem o bit de sinal: 1 para negativo ou 0 para positiva. O expoente é utilizado com a mantissa de uma forma complexa e mística para valores de ponto flutuante falsos em binário. (Se você estiver curioso, você pode procurar De ponto flutuante binário na internet e encontrar alguns excelentes tutoriais que podem ou não podem esclarecê-lo.)

A linha inferior é que é preciso mais trabalho para o computador para descobrir problemas binários, como valores de ponto flutuante, que ele faz para o computador para trabalhar em números inteiros. Assim, sempre que possível, o uso inteiro valores- usar os números de ponto flutuante somente quando necessário.

Nos primeiros dias de programação C, que muitas vezes teve de se conectar em uma biblioteca especial de ponto flutuante se o programa usado valores de ponto flutuante. A maioria dos compiladores agora pode lidar com números de ponto flutuante sem este passo extra.

menu