컴퓨터 산술

승산기에서 기수 4 부스 알고리즘(부스 부호화)을 사용하는 주된 효과는 무엇입니까?

  1. A곱셈 결과를 반올림 없이 정확하게 구할 수 있도록 한다
  2. B승수를 부호 있는 자리로 바꾸어 부분곱을 거의 절반으로 줄인다
  3. C부호 있는 수의 곱셈을 할 수 없게 하는 대신 회로를 작게 한다
정답과 해설 보기

정답: B. 승수를 부호 있는 자리로 바꾸어 부분곱을 거의 절반으로 줄인다

보통의 곱셈에서는 승수의 1비트마다 부분곱이 하나 생기므로 n비트라면 n개의 부분곱을 더해야 합니다. 기수 4 부스 부호화에서는 승수를 2비트씩(겹침이 있는 3비트를 보고) −2, −1, 0, +1, +2의 자리로 바꾸므로 부분곱은 대략 n/2개로 줄어듭니다. −2배나 +2배는 1비트 이동으로, 음수 값은 2의 보수로 만들 수 있어 회로도 간단합니다. 부분곱이 줄어드는 만큼 더하는 회로가 작아지고 빨라집니다. 부호 있는 곱셈도 자연스럽게 다룰 수 있습니다.

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

컴퓨터 산술의 다른 문제

  1. 부호 없는 8비트 수끼리를 곱했을 때 결과를 오버플로 없이 나타내는 데 필요한 비트 수는 무엇입니까?
  2. 정수 x를 10배 하는 계산을 곱셈 명령을 쓰지 않고 시프트와 덧셈으로 수행하는 식으로 올바른 것은 무엇입니까?
  3. 일반적인 정수 제산기(1비트씩 몫을 구하는 복원형·비복원형 등)가 승산기보다 느려지기 쉬운 이유로 올바른 것은 무엇입니까?
  4. 8비트 부호 있는 정수에서 −8(1111 1000)을 산술 오른쪽 시프트로 1비트 오른쪽으로 이동한 결과는 무엇입니까?
  5. C 언어에서 int형의 −7 / 2와 −7 >> 1(산술 오른쪽 시프트인 경우)의 결과 조합으로 올바른 것은 무엇입니까?