elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  convertir unsigned char a char
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: convertir unsigned char a char  (Leído 3,170 veces)
SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
convertir unsigned char a char
« 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.


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: convertir insignes char a char
« Respuesta #1 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.


En línea

SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
Re: convertir insignes char a char
« Respuesta #2 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.
« Última modificación: 10 Julio 2014, 12:52 pm por SARGE553413 » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: convertir unsigned char a char
« Respuesta #3 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.
En línea

SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
Re: convertir unsigned char a char
« Respuesta #4 en: 10 Julio 2014, 13:28 pm »

Entendido, muchas gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines