Desbordamiento del tipo char

Iniciado por 0xDani, 18 Octubre 2012, 14:24 PM

0 Miembros y 1 Visitante están viendo este tema.

0xDani

Bueno la cuestion es: yo leo un byte de un archivo, lo almaceno en una variable tipo char, le sumo un numero del 1 al 11, y se pasa de 127, es decir, se desborda el tipo. Luego escribo ese byte a otro archivo. Y otra aplicacion que lea ese archivo y conozca que numero se le sumo a ese byte, ¿como lo vuelve a convertir en el original, si se desbordo el tipo?

Quiza no me he explicado muy bien, si no lo entienden pregunten.

Saludos.
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

rir3760

Una respuesta general (si se trata del lenguaje C) no es posible porque cuando un tipo entero con signo se desborda se genera comportamiento no definido (cualquier cosa puede pasar). Intenta revisando la documentación de tu compilador, tal vez ahí se describa el funcionamiento.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

0xDani

El compilador es GCC, haciendo algunas pruebas he comprobado que si a una variable de tipo char le sumo 1 pasa a valer -128.
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

x64core

Cita de: 0xDani en 18 Octubre 2012, 19:43 PM
El compilador es GCC, haciendo algunas pruebas he comprobado que si a una variable de tipo char le sumo 1 pasa a valer -128.
Pues claro,estamos hablando de un signed char, es porque el MSB valdra 1 si es un numero con negativo, y el rango sera de
-128 - 127, son cosas basicas ¬¬

Pero respondiendo a tu pregunta, creo que estas buscando es un unsigned char no? el rango es 0-255.

Stakewinner00

eso de k son cosas básicas puede ser pero hay gente k como yo que aprendemos solos y sabemos programar en C++ y no sabemos demasiada teoría, y creo que ese es su caso XD

0xDani

Cita de: Stakewinner00 en 18 Octubre 2012, 22:56 PM
eso de k son cosas básicas puede ser pero hay gente k como yo que aprendemos solos y sabemos programar en C++ y no sabemos demasiada teoría, y creo que ese es su caso XD

[broma]Incorrecto, me lei bastantes capitulos de C++ con Clase  :P[/broma]. No, mi pregunta no era esa, la pregunta es si yo tengo un -124, y se que se le sumo 7 para obtenerlo, el tipo se ha desbordado pero como obtengo el numero original? Puede parecer una tonteria, quiza es que ya estoy bloqueado con esto pero no me sale  :xD.

Saludos.
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM