“Conocimiento Programación>C /C + + Programming

Cómo comprobar desbordamiento de enteros

2013/11/12
Ordenadores almacenan números en formato binario , es decir, como una secuencia de 1 y 0 . El rango de números que puede ser expresado por un número binario es 2 a la potencia de la cantidad de números binarios que componen la secuencia . Por ejemplo, un entero de 32 bits puede contener 2 a la potencia de 32 ( 4294967296 ) números únicos . Si tal un entero celebrará el número más grande que era capaz de expresar y se añadió el número 1 a la misma, que se desbordaba . Eso significa que el número podría empezar de nuevo a 0 . Comprobación de desbordamiento de enteros es vital para la captura de los errores del programa - que se estrellan en C o C + + . Cosas que necesitará
C + + entorno de desarrollo integrado ( IDE ) , como Eclipse CDT
C + + Compiler , como G+ +
Mostrar más instrucciones
1

Comience el C + + IDE haciendo clic en su icono y esperar a que cargue .
2

Hacer un nuevo proyecto haciendo clic en "Archivo /nuevo proyecto. " Un archivo de código fuente en blanco en el espacio de trabajo
3

Crear una función principal al escribir las siguientes líneas de código: .

Int main ()
< p > {

}
4

declare tres variables: dos enteros de 16 bits de ancho y un amplio número entero de 32 bits por escrito las siguientes dos líneas dentro de los corchetes de la función principal :

uint16_t a, b ​​, c

uint32_t ;
5

Añadir los dos enteros de 16 bits de ancho , junto con la siguiente operación:
< p > c = a + b;
6

Prueba de desbordamiento mediante la comparación de la variable c con el valor máximo de una variable uint16_t puede sostener ( 2 a la potencia de 16 -1 , o 65535 ) . Si los resultados de esta prueba en verdad, un desbordamiento se produce si se intenta añadir estos dos números y los almacena en una variable uint16_t .

If ( c > = 65.535 )

{

}
7

Publicar un mensaje de error dentro de las llaves de si se ha detectado la declaración anterior para que el programador sabe un desbordamiento. Se puede escribir esto:

cerr << "Desbordamiento detecta cuando se añade a + b" << endl ;

C /C + + Programming
Cómo pasar Estructuras Plantilla en Funciones en C
Cómo leer archivos Hex en C + +
Cómo cifrar un archivo en C #
Propósito principal de archivos de encabezado
Cómo convertir cadenas alfabéticas en C + +
¿Qué proceso es una memoria?
¿Cuáles son las funciones del Turbo C
¿Cómo puedo escribir un programa en el Programa de Lenguaje C que convierte Fahrenheit a Celsius a Kelvin
Conocimiento de la computadora © http://www.ordenador.online