As limitações de inteiros em c ++

o int

tipo variável é a versão C ++ de um número 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 de calcular a 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. Dado os valores 1, 2 e 2, a soma é 5. Divida que por 3, e você terá 12/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 seguinte:

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

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

Faixa limitada

Um segundo problema com a int tipo variável é o seu alcance limitado. A normalidade int variável pode armazenar um valor máximo de 2147483647 e um valor mínimo de -2.147.483.648 - cerca de positivo para negativo 2000000000 2000000000, para uma gama total de cerca de 4000 milhõ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 é. (Giga é o prefixo significando bilhões).

Um único fio de fibra de comunicações - o tipo que tem sido amarrados e para trás de um lado do país para o outro - pode lidar com muito mais do que 2 bilhões de bits por segundo.


Publicações relacionadas