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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Unsigned char y operador complemento a1(~) en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Unsigned char y operador complemento a1(~) en c  (Leído 2,884 veces)
fafafa01

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Unsigned char y operador complemento a1(~) en c
« en: 12 Enero 2017, 07:20 am »

Buenas resulta que compile el siguiente codigo:
Código
  1. Printf("%d",~((unsigned char)~0));
  2.  

Al compilarlo da -256
Segun la logica que sigo yo y sabiendo que un char tiene 8 bits no entiendo como llega a ese resultado.

Primero al cero le realiza su complemento a1 por lo que queda todos unos,sabiendo que el char tiene ocho bits queda 11111111 que seria el numero 255. Y si luego a todos esos unos se le realiza su complemento a1 quedan todos ceros.


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Unsigned char y operador complemento a1(~) en c
« Respuesta #1 en: 12 Enero 2017, 15:10 pm »

Tu dato es un unsigned char, pero lo aloja un registro de 32 o 64 bits. Ahí tienes la respuesta.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Unsigned char y operador complemento a1(~) en c
« Respuesta #2 en: 12 Enero 2017, 15:31 pm »

efectivamente y solo para aclarar un poco, estás haciéndole casting de uc a 0, pero cuando lo operas desde afuera, está promoviéndolo como int (en general porque estás imprimiendo como %d) y pasándolo a un espacio de bit más grande donde el complemento es 11111111000000000
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Estructura ARP a buffer unsigned char *
Programación C/C++
ahkbar87 3 3,410 Último mensaje 3 Febrero 2012, 01:44 am
por ahkbar87
Problema conversión Unsigned char a char
Programación C/C++
juliodiez 4 2,866 Último mensaje 19 Enero 2013, 04:34 am
por juliodiez
de wchar_t a unsigned char
Programación C/C++
pikoc 3 3,491 Último mensaje 21 Mayo 2015, 17:06 pm
por pikoc
Ayuda por favor! Con c, unsigned char y array de char !
Programación C/C++
Yurasamai 1 3,375 Último mensaje 24 Noviembre 2015, 09:14 am
por avesudra
Unsigned char con address
Programación C/C++
josue9243 2 2,752 Último mensaje 12 Agosto 2017, 17:47 pm
por josue9243
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines