컴퓨터 산술

일반적인 정수 제산기(1비트씩 몫을 구하는 복원형·비복원형 등)가 승산기보다 느려지기 쉬운 이유로 올바른 것은 무엇입니까?

  1. A나눗셈은 곱셈보다 계산 결과의 비트 수가 많아지기 때문
  2. B몫의 각 비트가 이전 결과에 의존하여 병렬화하기 어렵기 때문
  3. C나눗셈 회로는 부동소수점으로만 만들 수 있기 때문
정답과 해설 보기

정답: B. 몫의 각 비트가 이전 결과에 의존하여 병렬화하기 어렵기 때문

곱셈에서는 부분곱을 모두 동시에 만들고 월리스 트리 등으로 병렬로 더할 수 있습니다. 반면 필산 나눗셈과 같은 방식의 제산기에서는 나머지에서 제수를 뺄 수 있는지를 조사하여 몫의 1비트를 정하고, 그 결과의 나머지를 사용하여 다음 비트를 정하므로 각 단계가 이전 결과에 의존합니다. 그래서 1사이클에 1~수 비트씩밖에 진행하지 못하고 수십 사이클이 걸리기도 합니다. 역수를 뉴턴법으로 구해 곱셈으로 바꾸는 방식도 있습니다. 결과의 비트 수가 많은 것은 아닙니다.

이 분야 연습하기 분야로 돌아가기

컴퓨터 산술의 다른 문제

  1. 8비트 부호 있는 정수에서 −8(1111 1000)을 산술 오른쪽 시프트로 1비트 오른쪽으로 이동한 결과는 무엇입니까?
  2. C 언어에서 int형의 −7 / 2와 −7 >> 1(산술 오른쪽 시프트인 경우)의 결과 조합으로 올바른 것은 무엇입니까?
  3. C 언어에서 32비트 부호 없는 정수(unsigned int)의 0에서 1을 뺀 결과는 무엇입니까?
  4. 부호 없는 정수끼리의 덧셈에서 결과가 표현 가능한 범위를 넘은(오버플로한) 것을 판정하는 방법으로 올바른 것은 무엇입니까?
  5. 부동소수점수에서 인접한 표현 가능한 값끼리의 간격에 대한 설명으로 올바른 것은 무엇입니까?