2진수의 음수표현

박영준·2023년 5월 9일
0

IT 지식

목록 보기
3/16

(8비트 기준)

부호 절대값

  • 가장 왼쪽에 있는 비트를 부호비트라고 했을 때, 이 부호비트가 '0인지 1인지' 에 따라 양수, 음수로 구분된다.

    • 0일때는 양수 -> 2진수 00000011 = 10진수: 3

    • 1일때는 음수 -> 2진수 10000011 = 10진수: -3

1의 보수

  • 11111111 - x 를 하는 방식

    • 11111111 - x 는 x 를 반전시킨 것과 같다.
  • 1이면 0, 0이면 1이 된다.

    • 11111111 - 00101001 = 11010110
  • -13을 1의 보수 방식으로 표현

    • 13을 2진수로 표현 : 00001101
    • 11111111 - x 공식에 대입
    • 결과 : 11110010

2의 보수

  • 가장 많이 사용하는 방식

  • 쉽게 계산하는 방법?
    : 1의 보수를 구한 뒤, 나온 수에 +1 해주기

  • 100000000 - x 를 하는 방식

  • 가장 왼쪽숫자가 0일 경우 양수, 1일 경우 음수를 표현

  • -13을 2의 보수 방식으로 표현

    • 13을 2진수로 표현 : 00001101
    • 100000000 - x 공식에 대입
    • 결과 : 11110011
  • -9를 2의 보수 방식으로 표현

    • -9를 1의 보수 방식으로 표현 : 00001001(9) -> 11110110
    • 11110110 + 1
    • 결과 : 11110111
  • 1101의 2의 보수를 구하기 (덧셈)

    • 수를 뒤집는다: 1101 -> 0010
    • 뒤집은 수에 1을 더한다: 0010 + 1 = 0011
    • 1101에 0011을 더한다
    • 결과 : 10000

  • 1101의 2의 보수를 구하기 (뺄셈)

    • 빼고 싶은 수인 0111을 2의 보수로 변환
      • 0111 -> 1000 (먼저1의 보수로 변환)
      • 1000 + 1 = 1001 (1을 더하여 2의 보수로 변환)
    • 변환한 수를 더한다 : 101 + 1001 = 10110
    • 초과한 자릿수를 버린다: 10110 -> 0110
    • 1101 (13) - 0111 (7) = 0110 (6) 이므로 계산 값이 같다.
profile
개발자로 거듭나기!

0개의 댓글