3장 연습 문제 9번

맨 오른쪽의 4개 비트만 반전시키는 문제이다.

오른쪽 4개만 얻기 위해서.... 생각해낸 것이 15와 & 연산을 시키면 오른쪽 비트 4개만 얻을 수 있다는 것이다.

그 이유는 15가 2진법으로 1111 이므로 오른쪽 4개 비트와 &연산을 하면 그 수의 4개 비트만 딱 얻어진다.
# -*- coding: cp949 -*-
a = input('Integer : ')
b = a & 15
c = (~b) & 15
print '반전된 수 : %d' % (a-b+c)
15와 연산해서 얻어진 수를 반전 시키고 그 수의 오른쪽 4개만 다시 얻어서 더해버렸다.

댓글 없음:

댓글 쓰기