Las limitaciones de números enteros en c ++

Video: validar un numero entero en c (función isdigit)

los int tipo de variable es el C ++ versión de un número entero. int las variables sufren las mismas limitaciones que sus equivalentes de números enteros conteo en matemáticas hacen.

Número entero de redondeo

La poda de la parte fraccionaria de un número se llama truncamiento. Considere el problema de calcular el promedio de tres números. Teniendo en cuenta tres int las variables - nValue1, nValue2, y nValue3 - una ecuación para el cálculo de la media es de

Video: 3 -Tutorial de C++ en español - Tipo de datos int (números enteros)

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

Debido a que los tres valores son números enteros, la suma se supone que es un número entero. Teniendo en cuenta los valores 1, 2, y 2, la suma es 5. Divida que por 3, y se obtiene 12/3, o 1.666. C ++ utiliza reglas ligeramente diferentes: Teniendo en cuenta que las tres variables nValue1, nValue2, y nValue3 son números enteros, la suma también se supone que es un número entero.

El resultado de la división de un entero por otro entero es también un entero. Por lo tanto, el valor resultante de nAverage es el valor razonable, pero lógico de 1.

El problema es mucho peor en la siguiente formulación matemáticamente equivalente:

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

Video: Programacion en C: Validar Numeros Entero Positivo, Entero y Real

La conexión de los mismos 1, 2, y 2 valores, el valor resultante de nAverage es 0 (hablar de irracional). Para ver cómo esto puede ocurrir, consideran que 1/3 trunca a 0, 2/3 trunca a 0 y 2/3 trunca a 0. La suma de 0, 0, y 0 es 0. Se puede ver que el truncamiento de enteros puede ser totalmente inaceptable.

Rango limitado

Un segundo problema con el int tipo de variable es su gama limitada. Una normales int variable puede almacenar un valor máximo de 2147483647 y un valor mínimo de -2147483648 - más o menos de positivo a negativo 2 mil millones 2 mil millones, para un rango total de alrededor de 4 mil millones.

Dos mil millones es un número muy grande: lo suficientemente grande para la mayoría de usos. Pero no es lo suficientemente grande para algunas aplicaciones, incluyendo la tecnología informática. De hecho, el equipo probablemente se ejecuta más rápido que 2 gigahercios, dependiendo de la edad de su equipo es. (Giga es el prefijo que significa mil millones.)

Una sola hebra de fibra de comunicaciones - el tipo que se ha colgado de ida y vuelta de un extremo del país al otro - puede manejar de forma más de 2 mil millones de bits por segundo.

Artículos Relacionados