#include<stdio.h>
int main()
{
int a, b=0;
printf("두 개의 16진수를 입력하시오 : ");
scanf_s("%x %x",&a,&b);
printf("%x %x = %x\n", a, b, a&b);
printf("%x %x = %x\n", a, b, a|b);
printf("%x %x = %x\n", a, b, a^b);
return 0;
}
이래 짰는데
12 랑 21을 입력하면
왜
and연산 0
or연산 33
xor연산 33 이 나오는걸까요?
16진수 12 를 2진수로 하면 0001 0010
16진수 21을 2진수로 하면 0010 0001
둘을 세로로 같은 자리끼리 AND 하면 1 1 인 경우가 없으니 0 나머지도 마찬가지.
33이 나오는 이유를 잘 모르겠어요..
AND OR 을 알면서 XOR 을 모른다구?
다르면 1 같으면 0 이 XOR 이잖아.
제일 위의 댓글 둘을 세로로 같은 자리 끼리 XOR로 묶어보면, 0 xor 0, 0 xor 0, 0 xor 1, 1 xor 0 ... 이런식이 되니까
0011 이 되는거고 뒤도 마찬가지
0011 -> 3
감사합니다