C/Visual C - Duda de un novatillo -C-

 
Vista:

Duda de un novatillo -C-

Publicado por n0nick (2 intervenciones) el 08/09/2003 23:26:47
Hola a todos, estoy empezando en C y tengo esta duda, sera una tonteria pero no me aclaro.

char cadena[15];
int a = 100;
int b = 50;
printf ("Introduzca cadena : \n");
gets(cadena); // yo introduzco a por ejemplo a
cadena[0] = (unsigned int)cadena[0] + a + b;
Es decir, si sumo 97 + 100 + 50 daria 147, no?
Entonces porque cadena[0] me sale que es igual a -9?
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda de un novatillo -C-

Publicado por chuidiang (677 intervenciones) el 09/09/2003 06:15:14
Se debe a que guardas el resultado en cadena[0], que es un char. Manejado como entero, un char tiene un rango de -128 a +127. Cualquier cosa que supere 127 (como tu 147, que en realidad es 247) se sale de rango da la vuelta y sigue por los negativos
127 es 127
128 se convierte en -128
129 se convierte en -127
130 se convierte en -126
...
247 se convierte en -9

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda de un novatillo -C-

Publicado por n0nick (2 intervenciones) el 09/09/2003 20:16:37
Entendido, muchas gracias.
n0nick.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar