Quiero verel Desbordamiento de un tipo long
Publicado por Pekka (1 intervención) el 12/04/2017 20:20:39
Hola a todos.
Tengo que hacer un programa se haga las funciones básicas de una calculadora. La idea es observar los efectos del desborde en los distinto tipos de variable. Para el tipo long inplementé la siguiente función:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
int longCal(int a, int b, char op){
/* intcalculadora
Rango del tipo int = [-2147483648, 2147483647]
*/
switch (op) {
case '+':
if ( (a+b) > 2147483647 || (a+b) < -2147483648 ) {
printf("OVERFLOW!\n" );
return a+b;
}else{
return a+b;
}
break;
case '-':
if ( (a-b) > 2147483647 || (a-b) < -2147483648 ) {
printf("OVERFLOW!!\n");
return a-b;
}else{
return a-b;
}
break;
case '*':
if ( (a*b) > 2147483647 || (a*b) < -2147483648 ) {
printf("OVERFLOW!!!\n");
return a*b;
}else{
return a*b;
}
break;
case '/':
if(b == 0){
printf("Division por cero\n");
return 0;
}
if ( (a/b) > 2147483647 || (a/b) < -2147483648 ) {
printf("OVERFLOW!!!!\n");
}else{
return a/b;
}
break;
}
}
donde si excede los los limites de la representación lanza un mensaje "OVERFLOW!!!". En el caso de sumar
y yo tendría que ver el desborde
La pregunta es, ¿Porqué no lo estoy viendo?
Lenguaje C - Compilador gcc
Valora esta pregunta
0