항해99 5기 CS Study - 1장 컴퓨터 내부의 언어 체계

ne_ol·2022년 1월 18일
0
post-thumbnail

5. 정수를 비트로 표현하는 방법

1. 양의 정수 표현

  • 인간
    • 10진수 (Decimal Number)
    • 손가락과 발가락이 열 개라서 사용
    • 10가지의 기호 (Digit)을 상자에 담을 수 있다
    • 밑이 10인 시스템 (base-10)
    • 5,028 in 10진수 -> 네 자리
  • 비트
    • 2진법 -> 0, 1만 상자에 담을 수 있다
    • 5,028 in 2진수 -> 13 비트
    • LSB: least significant bit, 가장 작은 유효 비트
    • MSB: most signficant bit, 가장 큰 유효 비트

2. 2진수 덧셈

  • 10진수의 덧셈과 같이 가장 오른쪽에서 왼쪽으로 각 자리의 숫자를 더하고, 결과가 2보다 크면 1을 다음 자리 (왼쪽)로 올린다.

  • A + B = A XOR B
  • A + B의 올림 = A AND B

  • Overflow: 비트 덧셈의 결과가 비트의 개수로 표현 가능 범위 초과 (=MSB에서 올림 발생)
    • Condition code register (조건 코드 레지스터)에서 Overflow bit 확인 가능
  • Underflow: MSB 위쪽에서 1을 빌려오는 경우

3. 음수 표현

1. 부호와 크기

  • MSB를 부호에 사용한다.
  • 2진수 부호 표현
    • 0: 양수
    • 1: 음수
    • 부호와 크기 표현
      • 한 비트를 부호에 사용 + 나머지 비트로 크기 표현
      • 0을 표현하는 방법 두 가지 (비용 낭비) & XOR과 AND릍 통한 덧셈 불가 => 널리 사용 X
    • 2진수 부호와 크기 표현법 (4 비트)

2. 1의 보수 (One's compliment)

  • 양수의 모든 비트를 뒤집어서 표현
  • NOT 연산을 통해 보수를 얻음
  • 부호와 크기 표현법처럼 현대 컴퓨터에서 사용 X (추가 하드웨어 필요 -> 비용 낭비)
  • 2진수 1의 보수 표현법 (4 비트)

3. 2의 보수 (Two's compliment)

  • 부호가 있는 정수를 표현할 때 가장 보편적
  • 비트의 NOT + 1 = 음수값
    • 비트: 0010 (+2)
      -> 1101 (NOT 비트) + 1 = 1111 (-2)
  • 2진수 1의 보수 표현법 (4 비트)

  • 같은 숫자로 이뤄진 수라도 문맥에 따라 값이 달라진다!
    • Quiz. 2진수 1111
      • 2의 보수:
      • 1의 보수:
      • 부호와 크기 표기:
profile
개발되는 중입니다.

0개의 댓글