C | Tipos de datos | Pregunta 1

Prediga la salida del siguiente programa. Suponga que los números se almacenan en forma de complemento a 2.

#include<stdio.h> 
int  main() 
{ 
   unsigned int x = -1; 
   int y = ~0; 
   if (x == y) 
      printf("same"); 
   else
      printf("not same"); 
   return 0; 
}

(A) igual
(B) diferente

Respuesta: (A)
Explicación: -1 y ~0 esencialmente tienen el mismo patrón de bits, por lo tanto, x e y deben ser iguales. En la comparación, y se promociona a sin firmar y se compara con x (consulte aquí las reglas de promoción). El resultado es «igual». Sin embargo, cuando se interpretan como firmados y sin firmar, sus valores numéricos diferirán. x es MAXUNIT y y es -1. Como también tenemos %u para y, la salida será MAXUNIT y MAXUNIT.

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *