문제1161--[기초-비트단위 논리 연산] 비트단위로 XOR 하여 출력하기(설명)(C)

1161: [기초-비트단위 논리 연산] 비트단위로 XOR 하여 출력하기(설명)(C)

[만든사람 : 전현석, 정종광(채점데이터 및 확인), 배준호(확인), 최웅선(확인), 김지혜(그림) (2013)]
시간제한 : 1.000 sec  메모리제한 : 128 MiB

문제 설명

본 문제는 C 의 빠른 기초 학습을 위해 설계된 문제로서 C 코드 제출을 기준으로 설명되어 있습니다.
------

입력된 정수 두 개를 비트단위로 xor 연산한 후 그 결과를 정수로 출력해보자.
비트단위(bitwise) 논리 연산자 ^(xor, circumflex/caret, 서컴플렉스/카릿)를 사용하면 된다.
** 주의 ^은 수학식에서 거듭제곱(power)을 나타내는 기호와 모양은 같지만,
C언어에서는 전혀 다른 배타적 논리합(xor, 서로 다를 때 1)의 의미를 가진다.
참고 
** 저장되어있는 비트단위로 계산하거나 처리하는 비트단위(bitwise) 연산자는
~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor), <<(bitwise left shift), >>(bitwise right shift) 가 있다.

예를 들어 3과 5가 입력되었을 때를 살펴보면
3       : 00000000 00000000 00000000 00000011
5       : 00000000 00000000 00000000 00000101
3 ^ 5 : 00000000 00000000 00000000 00000110
이 된다.

이러한 비트단위 연산은 
빠른 그래픽처리를 위해 이전 화면과 다른 부분만 찾아내거나 처리하는 
마스크(특정 부분을 가리는) 연산을 수행하는데에도 효과적으로 사용된다. 

구체적으로 설명하자면, 빠른 3D 그래픽 처리를 한다고 할 때,
이전 화면과 다른 부분만 골라내 처리해서 더 빠르게 화면을 그릴 수 있는 것이다.

화면을 구성하는 모든 점들의 색을 다시 계산해서 처리하지 않고, 
색이 달라지는 점들만 골라내서 그 점들만 색을 다시 처리하면 더 빠르게 화면을 그릴 수 있다.

입력 설명

2개의 정수가 스페이스로 분리되어 한 줄로 입력된다.
(-2147483648 ~ 2147483647) 

출력 설명

두 정수를 비트단위(bitwise)로 xor 계산을 수행한 결과를 10진수로 출력한다.

입력 예시 Copy

3 5

출력 예시 Copy

6

도움

기초100제(c)1 v1.5 : 정보교사 커뮤니티 @컴퓨터과학사랑(CSL)
- 중고등학교 정보 선생님들과 함께 정보수업/방과후/동아리활동 등을 통해 재미있게 배워보세요.
- 모든 내용 및 이미지들은 저작자와의 협의 없이 무단으로 사용할 수 없습니다.

출처/분류