Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SARGE553413 en 10 Julio 2014, 12:43 pm



Título: convertir unsigned char a char
Publicado por: SARGE553413 en 10 Julio 2014, 12:43 pm
Hola a todos.

Tengo una funcion en C que me devuelve un unsigned char *. Tengo que escribir esta cadena en un fichero binario, para lo cual uso cout.write().
Pero ese método solo admite char *, así que hago la conversión.
Mi pregunta es si debido a esta conversión habrá algunos bytes que cambien.

Gracias, saludos.


Título: Re: convertir insignes char a char
Publicado por: eferion en 10 Julio 2014, 12:46 pm
Cuando tu haces una conversión explícita, lo único que sucede es que le estás diciendo al compilador que sabes que el dato se va a tratar de forma diferente... por lo que evitas la aparición de warnings. Sin embargo la información almacenada en memoria es exactamente la misma.


Título: Re: convertir insignes char a char
Publicado por: SARGE553413 en 10 Julio 2014, 12:48 pm
Cuando tu haces una conversión explícita, lo único que sucede es que le estás diciendo al compilador que sabes que el dato se va a tratar de forma diferente... por lo que evitas la aparición de warnings. Sin embargo la información almacenada en memoria es exactamente la misma.

Gracias por la respuesta.

Pero quiero decir, si unsigned char var de 0 a 255 y char de -128 a 127, podrán cambiar algunos bytes no?
Es decir, si tengo un insigned char c=255 y lo casteo a char, entonces ya no será el byte que era, porque char no llega hasta 255, ¿me equivoco?

EDITO: Lo acabo de comprobar con 255, 120, 122, 130 y no cambia, no lo entiendo.


Título: Re: convertir unsigned char a char
Publicado por: eferion en 10 Julio 2014, 12:57 pm
Ambos tipos usan 8 bits... unsigned char usa los 8 bits para representar el número... char usa el primer bit para representar el signo y los otros 7 para represetnar el número... pero una codificación binaria cualquiera es válida para ambos tipos.

El código binario es el mismo, lo único que cambia es la forma en la que se interpreta esa información.


Título: Re: convertir unsigned char a char
Publicado por: SARGE553413 en 10 Julio 2014, 13:28 pm
Entendido, muchas gracias.