[ Foro de C ]
Hola buenas, 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;
}
Teníamos que decir que el resultado a imprimir sería 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 los dos (a^b) y me devuelve 1100001, que pasándolo a decimal es 97.
¿Alguien sabe dónde está el error? Gracias
hola álvaro
solo fijate que estas usando algunas anotaciones en hexadecimal
tienes el 48 como número hexadecimal
al que le haces una operación de bits xor
con el 25 decimal
y el resultado lo muestras en hexadecimal
suerte ;-)
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)