코딩일기/자격증

비트 연산자 NOT과 2의 보수

jhy_2023 2024. 6. 26. 14:46
728x90
반응형


b = 7일 때, ~b의 값은?

정답: -8


1. 정수 7의 이진수 표현:

  • 7의 8비트 이진수 표현은 0000 0111입니다.
  • 7을 2로 나누어 나머지를 기록합니다 (몫 3, 나머지 1).
  • 몫 3을 2로 나누어 나머지를 기록합니다 (몫 1, 나머지 1).
  • 몫 1을 2로 나누어 나머지를 기록합니다 (몫 0, 나머지 1).
  • 나머지들을 역순으로 배열하면 111이 됩니다.

따라서 7의 이진수는 0000 0111입니다.

2. 비트단위 NOT 연산 (~b):

  • 비트단위 NOT 연산은 각 비트를 반전시키는 연산입니다. 즉, 0을 1로, 1을 0으로 바꿉니다.
  • 따라서, ~0000 0111은 1111 1000이 됩니다.

3. 2의 보수로 해석 (2의 보수 변환):

  • 이진수 1111 1000은 2의 보수로 해석할 때, 음수를 나타냅니다.
  • 가장 왼쪽의 비트는 부호 비트입니다. 0으로 시작하면 양수, 1으로 시작하면 음수입니다.
  • 2의 보수 변환은 해당 수의 모든 비트를 반전한 후 1을 더하는 것을 의미합니다.
    • 2의 보수 변환 과정:
      1. 비트 반전: 0000 0111
      2. 1을 더하기: 0000 1000

4. 이진수 0000 1000을 10진수로 변환하는 과정:

  • 이진수에서 각 자리는 오른쪽에서 왼쪽으로 2의 거듭제곱 값에 해당합니다.
  • 자릿값 (오른쪽에서 왼쪽으로):
    • 첫 번째 자리: 1의 자리
    • 두 번째 자리: 2의 자리
    • 세 번째 자리: 4의 자리
    • 네 번째 자리: 8의 자리
    • ...
  • 각 자릿수에 2의 거듭제곱을 곱한 값을 더합니다. 0000 1000에서 1인 자릿수는 네 번째 자리뿐. 따라서, 이진수 0000 1000은 (2^3) = 8입니다.

5. 부호 비트가 1이므로 음수, 따라서 정답은 -8입니다.

728x90
반응형