Asignación de múltiples caracteres en un int en lenguaje C

Considere el siguiente programa en C.

#include <stdio.h>
int main(void)
{
    int a = 'd';
  
    printf("%d\n", a);
    /*OUTPUT - 100 (ASCII Code for character d)*/
  
    int b = 'dd';
    printf("%d", b);
    /*OUTPUT - 25700 (Explanation in detail given below)*/
  
    return 0;
}

Producción :

100
25700

Podemos adivinar fácilmente que la salida para ‘d’ es 100 ya que 100 es el valor ASCII del carácter ‘d’.

Consideremos la siguiente línea

int a = 'dd' 

(%d, a) imprime 25700 como salida
01100100 01100100 (Binario de 100 100)
Suponiendo que int es de 2 bytes, el primer byte está ocupado por el primer carácter ‘d’ y el segundo byte por el segundo carácter ‘d’. Por lo tanto, el binario general implica 0110010001100100, es decir, 2 ^ 14 + 2 ^ 13 + 2 ^ 10 + 2 ^ 6 + 2 ^ 5 + 2 ^ 2 = 25700.

Ahora adivina el resultado del siguiente código.

#include <stdio.h>
int main(void)
{
    int b = 'de';
    printf("%d", b);
    return 0;
}

Publicación traducida automáticamente

Artículo escrito por Deepshikhar Bhardwaj 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 *