As Limitações de inteiros em C ++

o int

tipo de variável é a versão C ++ de um inteiro. int variáveis ​​sofrem as mesmas limitações como seus contagem de números inteiros equivalentes em matemática fazer.

Integer round-off

Decepar a parte fracionária de um número é chamado truncamento. Considere o problema do cálculo da média de três números. dada três int variáveis ​​- nValue1, nValue2, e nValue3 - uma equação para calcular a média é

int int nAverage- nValue1- int int nValue2- nValue3-nAverage = (+ nValue1 nValue2 nValue3 +) / 3-

Uma vez que todos os três valores são números inteiros, a soma é assumido como sendo um número inteiro. Tendo em conta os valores 1, 2 e 2, a soma é 5. Divida que por 3, e você terá 12 # 8260-3, ou 1.666. C ++ usa regras ligeiramente diferentes: Dado que as três variáveis nValue1, nValue2, e nValue3 são inteiros, a soma também é assumida como sendo um número inteiro.

O resultado da divisão de um número inteiro por outro inteiro é também um número inteiro. Assim, o valor resultante de nAverage é o valor razoável, mas lógico 1.

O problema é muito pior na formulação matematicamente equivalente a seguir:

int nAverage- int nValue1- int nValue2- int nValue3-nAverage = nValue1 / 3 + nValue2 / 3 + nValue3 / 3-

Ligar os mesmos valores 1, 2, e 2, o valor resultante de nAverage é 0 (falar sobre razoável). Para ver como isso pode ocorrer, considere que 1 # 8260-3 trunca a 0, 2 # 8260-3 trunca a 0 e 2 # 8260-3 trunca a 0. A soma de 0, 0 e 0 é 0. Você pode ver que a truncagem inteiro pode ser completamente inaceitável.

gama limitada

Um segundo problema com a int tipo de variável é o seu alcance limitado. Um normais int variável pode armazenar um valor máximo de 2,147,483,647 e um valor mínimo de-2.147.483.648 - cerca de positivo 2 bilhões para negativa 2 bilhões, para uma gama total de cerca de 4 bilhões.

Dois bilhões é um número muito grande: muito grande o suficiente para a maioria dos usos. Mas não é grande o suficiente para algumas aplicações, incluindo a tecnologia de computador. Na verdade, o computador provavelmente executa mais rápido do que 2 gigahertz, dependendo de quantos anos o seu computador está. (Giga é o prefixo que significa bilhões.)

Um único fio de fibra de comunicações - o tipo que tem sido amarradas para trás e para a frente de uma ponta do país à outra - pode lidar com muito mais do que 2 bilhões de bits por segundo.

menu