ERROR AL MULTIPLICAR BORLAND

Juan Alfonso
18 de Octubre del 2009
Hola a todos, el motivo de mi mensaje es que se produce un error de multiplicaci贸n en borland cuando hago la operaci贸n 854*1024, en lugar de dar como resultado 874496 da 22528. 驴Sab茅is a qu茅 se debe?驴Es problema del compilador? El IDE que utilizo es Borland C++ 5.02 . Un saludo y gracias de antemano.

Paco
18 de Octubre del 2009
El problema es que, probablemente, est茅s trabajando con variables del tipo short int (16 bits), cuyo rango va de -32768 a +32767. Dado que el resultado de la operaci贸n que quieres efectuar excede del rango posible, te conserva solamente los 16 bits (2 bytes) menos significativos, que corresponden a un short int con el resultado que te da.
Pueden ocurrir dos cosas:

1. Las variables que utilizas las has declarado como int. En este caso, lo que ocurre es que tu compilador es bastante antiguo y utiliza un int de 16 bits (2 bytes, compru茅balo pidi茅ndole que te imprima sizeof(int)). La soluci贸n es declarar las variables como long int (enteros de 32 bits, 4 bytes).

2. Las variables est谩n declaradas como short int. Entonces, decl谩ralas como int (previa comprobaci贸n imprimiendo sizeof(int), aunque creo que, por la versi贸n, ya utiliza int de 32 bits (4 bytes)). En el caso de que te diga que un int tiene 2 bytes, utiliza long int.

Como norma general, cuando un programa te haga cosas de este estilo, prueba a utilizar variables de rango superior.

Saludos,

Paco.