
Operaciones con bits C++
Publicado por Álvaro (1 intervención) el 20/11/2022 23:12:33
En un examen de programación escrito nos dieron este código:
#include <stdio.h>
int main(void)
{
int a=0x48, b=25;
printf("%x\n", a^b);
return 0;
}
El resultado debía imprimir 51, pero no entiendo por qué.
Yo paso 0x48 de hexadecimal a decimal y de decimal a binario (a=1001000)
Y 25 de decimal a binario (b=101001)
Después hago un XOR entre a y b (a^b) que me da 1100001, pasándolo a decimal 97.
¿Alguien sabe dónde está el fallo? Gracias.
#include <stdio.h>
int main(void)
{
int a=0x48, b=25;
printf("%x\n", a^b);
return 0;
}
El resultado debía imprimir 51, pero no entiendo por qué.
Yo paso 0x48 de hexadecimal a decimal y de decimal a binario (a=1001000)
Y 25 de decimal a binario (b=101001)
Después hago un XOR entre a y b (a^b) que me da 1100001, pasándolo a decimal 97.
¿Alguien sabe dónde está el fallo? Gracias.
Valora esta pregunta


0