답지 없이 직접 풀어본거라 틀린 답이 있을 수 있습니다.
잘못된 내용을 발견했을 때 덧글로 의견을 주시면 감사하겠습니다.
현재 6, 7장에서 빠져있는 정답과 풀이는 추후 보충할 예정입니다.

5장

  1. 1, - 0.5를 이진수로 바꾸면 0.1이다. (소수점 아래 자리를 2진수로 바꿀 땐 1을 초과할 때까지 2를 곱한다) 0.1을 정규화하면 1.0이 된다. 가수 부분이 0이 되므로 답은 1번.
  2. 2
  3. 3 - 3을 제외한 나머지는 논리회로에 해당된다
  4. 3
  5. 3
  6. 4
  7. 2 - 2^4 = 16. 4비트로 16개의 숫자를 표현할 수 있기 때문이다.
  8. 3 - 범위는 지수를 위한 유효 자릿수에 의해 좌우된다.
  9. 맞다. 이진수가 아닐 경우 1 이상의 숫자 중 어떤것이 나올지 알 수 없기 때문에 사용할 수 없다.
  10. 유니코드
  11. 범위
    1. 무부호 표현 : 0 ~ 2^7 - 1
    2. 부호표현 : -(2^7 - 1) ~ 2^7 - 1
    3. 1의 보수 : -(2^7 - 1) ~ 2^7 - 1
    4. 2의 보수 : -2^7 ~ 2^7 - 1
  12. 하나의 실수를 표현할 수 있는 방법이 무한하기 때문에 고유한 표현방법이 없다.
  13. (1) -28 (2) 0.8125 (3) 2.0
  14. 부호-크기 방식과 1의 보수 방식은 양수와 음수 사이 변환이 쉽지만 0이 2개 존재한다. 2의 보수 방식은 양수와 음수 사이의 변환이 복잡하지만 0이 하나이다. 0이 하나이기 때문에 표현할 수 있는 수의 개수가 홀수가 되어 범위의 대칭이 맞지 않는다. 하지만 0에 대한 표현의 유일성이 범위의 대칭성보다 중요하기 때문에 대부분의 아키텍처는 2의 보수 방식을 사용한다.

6장

  1. 1
  2. 4
  3. 4
  4. 추후 보충
  5. 5
  6. 1
  7. 4
  8. 2
  9. 4
  10. 4
  11. 가드 디지트
  12. S비트는 AND 게이트로 구현할 수 있으며 입력 신호의 MSB 값이 0이면 양수, 1이면 음수인 것으로 구별할 수 있다.
  13. n비트 연산을 수행할 때 결과가 n + 1비트일 때 왼쪽 첫번째 비트는 잉여 비트로 무시할 수 있다
  14. 추후 보충

7장

  1. 2
  2. 3
  3. 1
  4. 데이터경로
  5. 틀리다

6. ① - 010₂

② - 001₂ (목적지 레지스터로서 rt와 동일)

③ - 000010₂ (imm 값)

④ - 0000000000000001₂ (3번 레지스터의 내용)

⑤ - 0000000000000110₂ (2번 레지스터[r2]의 내용 0000000000000010₂에서 imm 값의 두 배를 더한 값)

⑥ - 001₂ (목적지 레지스터로서 rt와 동일)

⑦ - 0000000000000010₂

⑧ - 0000000000000110₂ (명령어를 실행하면 레지스터 파일에 있는 데이터의 내용을 ②가 지시하는 레지스터에 저장하므로 ⑤의 내용과 동일)

7. 추후 보충

8. ① - 010₂ (A 버퍼 값)

② - 100₂ (4번 레지스터의 내용)

③ - 010₂ (ALU 상단에 입력되는 데이터로서 ①과 동일)

④ - 0000000000000010₂ (명령어의 imm 필드를 부호 확장한 후 1비트 왼쪽으로 시프트한 내용)

⑤ - 0000000000000100₂ ($rs와 imm×2를 합한 내용, 즉 ③+④)

⑥ - PC의 번지수가 나와 있지 않으므로 알 수 없음

⑦ - 0000000000000001₂ (B 버퍼 값)

9. 추후 보충

 

6~7장 풀이 추가에 김보석 님께서 큰 도움 주셨습니다. 정말 감사합니다!
그림 풀이가 필요해 보이는 부분은 아직 준비를 못해서 나중에 추가하겠습니다.