<들어가기에 앞서>
2진수는 0b, 8진수는 0o, 16진수는 0x를 사용하여 입력한다.
10진수를 2진수로 바꾸어주는 함수는 bin(), 8진수로 바꾸어주는 함수는 oct(), 16진수로 바꾸어주는 함수는 hex()이다.

비트 연산자

  • SHIFT연산 (>>, <<) : 각 비트를 오른쪽과 왼쪽으로 옮긴다.
    이때, 옮긴다는게 오른쪽으로 옮기면(>>1) 결과를 2로 나누는 것이고 왼쪽으로 옮기면(<<1) 결과를 2로 곱하는 셈이 되는 것이다.
  • AND연산 (&) : 각 자릿수를 비교하여 둘 다 1이면 1, 아니면 0을 변환한다.
  • OR연산 (|) : 각 자릿수를 비교하여 둘 중 하나만 1이면 1을 변환한다.
  • XOR연산 (^) : 각 자릿수를 비교하여 다르면 1, 같으면 0을 변환한다.
  • NOT연산 (-) : 1을 0으로, 0은 1으로 변환한다.

Problem #040

다음 프로그램의 출력결과를 적으시오.

[code]
 print(bin(14))
 print(bin(0b110))
 print(0b110)
 print(bin(0o110))
 print(bin(0x110))

두 번째와 세 번째 줄의 0b110은 6,
네 번째 줄의 0o110은 72,
다섯 번째 줄의 0x110은 272를 의미한다.

Problem 041

다음 프로그램의 출력결과를 적으시오.

[code]
 print(hex(17))
 print(bin(0o1410))
 print(0xA1B0)
 print(oct(0xABC))
 print(bin(0o765))

두 번째 줄의 0o1410은 776,
세 번째 줄의 0xA1B0은 41392,
네 번째 줄의 0xABC는 2748
다섯 번째 줄의 0o765는 501을 의미한다.

Problem #045

프로그램의 빈칸을 비트연산자로 채워서 아래와 같은 출력결과가 나오도록 하시오.

[code]
num1 = 3
num2 = 6
num3 = 2

print(num1 ( A ) num2)
print(num1 ( B ) num2)
print(num1 ( C ) num2)
print(num1 ( D ) num2 ( E ) num3)

[result]
2
7
5
2

0개의 댓글