항해99/cs 스터디자료

한 권으로 읽는 컴퓨터 구조와 프로그래밍 -2022.01.18.TUE

<zinny/> 2022. 1. 18. 11:46
728x90

Chapter 1 정수를 비트로 표현하는 방법

1. 양의 정수 표현

  • 10진수 체계 - 10을 밑으로 하는 수 체계
  • 2진수 체계 - 2를 밑으로 하는 수 체계
  • 2진수로 표현할 수 있는 값의 범위

LSB (least significant bit) - 2진수에서 가장 오른쪽의 비트

MSB (most significant bit) - 2진수에서 가장 왼쪽의 비트

2. 2진수의 덧셈

1) 일반적인 10진법의 계산처럼 오른쪽 부터 왼쪽으로 계산

  • 각 자리끼리 더한 값이 2가 되면 올려줌
    ex) 11+ 10 = 101

2) XOR과 AND 연산

  • XOR : 두 비트가 다르면 1, 같으면 0
  • AND : 두 비트가 모두 1이면 1, 아니면 0
  • XOR를 통해 올림 발생하는 1+1 빼고 연산 가능 → AND를 통해 둘 다 1이면 올림 수 반영

3) 오버플로 / 언더플로

  • 오버플로 : 사용할 비트의 개수로 표현할 수 있는 범위 벗어나는 경우
    조건코드(상태코드) 레지스터 > 오버플로 비트 > MSB에서 발생한 올림값 들어감
  • 언더플로 : MSB 위쪽에서 1을 빌려오는 경우

 

3. 음수표현 방법

부호와 크기 표현법과 1의 보수 표현법은 XOR/AND 연산이 어렵거나 추가적인 하드웨어 없이 작동이 어렵기 때문에 현대 컴퓨터에서 잘 사용하지 않음
같은 숫자로 이뤄진 수를 보더라도 문맥에 따라 표현하는 값이 다를 수 있기 때문에, 어떤 표현법을 사용하는지 꼭 알고 있어야 함

1) 부호와 크기 표현법

  • MSB (가장 왼쪽 비트) 를 부호 용도로 사용
    0이면 양수 / 1이면 음수
    ex) 4비트
    → 부호용 비트 제외하고 0~7까지 수 표현 가능
    → 양수/0/음수 포함하면 15가지 수
    (양수 0과 음수 0은 똑같기 때문에 한가지로 취급)

2) 1의 보수 표현법

  • 양수의 모든 비트를 뒤집는 방법
    ex) 10진수 기준 7을 2진수 1의 보수 표현법으로 사용 시
    (양수) 0111 (음수) 1000
  • 순환 올림
    MSB 쪽에서 올림이 발생한 경우, LSB로 전달

  • 단점
    비용 낭비 - 0을 표현하는 방법이 두 가지(0000,1111), 순환올림 처리를 위한 하드웨어 필요
    복잡한 덧셈

3) 2의 보수 표현법

추가적인 하드웨어 없이, XOR과 AND연산 사용 가능한 방법
어떤 수의 비트를 뒤집고 1을 추가하면 음수로 변환 (더했을 때 0이 됨)
MSB에서 올림이 발생하면 값을 버림
0000은 뒤집고(1111) 1을 더하면 (1)0000인데,MSB에서 발생한 올림 값은 버린다고 했기 때문에 똑같이 0000이 된다.

728x90