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

1060: [기초-비트단위 논리 연산] 비트단위로 AND 하여 출력하기(설명)(py)

[만든사람 : 전현석, 최문성(확인), 이준용(확인), 김지혜(그림) (2020)]
시간제한 : 1.000 sec  메모리제한 : 128 MiB

문제 설명

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

정수 2개를 입력받아
두 정수를 비트단위로 and 연산한 후, 그 값을 정수로 출력해보자.
비트단위(bitwise) and 연산자 &를 사용하면 된다. (& : and, ampersand, 앰퍼샌드라고 읽는다.)
예시
...
print(a&b)
...


참고 
** 저장되어 있는 비트단위로 계산하거나 처리하는 비트단위(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 00000001
이 된다.

비트단위 and 연산은 두 비트열이 주어졌을 때, 둘 다 1인 부분의 자리만 1로 계산해 만들어주는 것이다.

이 비트단위 and 연산을 이용하면 어떤 비트열의 특정 부분만 골라내거나, 0으로 만들 수 있는데
192.168.0.31   : 11000000.10101000.00000000.00011111
255.255.255.0 : 11111111.11111111.11111111.00000000
일 때,

두 개의 ip 주소를 & 연산하면
192.168.0.0 :     110000000.10101000.0000000.00000000 을 얻어낼 수 있다.

실제로 이러한 계산은 네트워크에 연결되어 있는 두 컴퓨터가 데이터를 주고받기 위해
서로 같은 네트워크에 있는지, 다른 네트워크에 있는지를 판단하는 데 사용된다.

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

입력 설명

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

출력 설명

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

입력 예시 Copy

3 5

출력 예시 Copy

1

도움

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

출처/분류