주요 콘텐츠

나눗셈 과정

C 프로그래밍 언어에서는 고정소수점 데이터형에 대해서만 정수 나눗셈 처리가 가능합니다. 분자의 크기에 따라 정수 나눗셈 전에 시프트 연산을 수행하여 소수부 비트의 일부를 얻을 수 있습니다.

두 개의 숫자를 나눈다고 가정하겠습니다. 각 숫자는 8비트 워드로 표현되며, 각각 2-4의 이진 소수점 스케일링을 갖습니다. 또한 출력값은 2-4의 이진 소수점 스케일링을 갖는 8비트 워드로 제한됩니다.

다음 모델은 9.1875를 1.5000으로 나누는 것을 보여줍니다.

이 예제에서,

Qa=24(4)(4)(Qb/Qc)=24(Qb/Qc).

큰 데이터형을 사용할 수 있다고 가정하면 이는 다음과 같이 구현될 수 있으며,

Qa=(24Qb)Qc,

여기서 분자는 더 큰 데이터형을 사용합니다. 더 큰 데이터형을 사용할 수 없는 경우에는 네 번 반복되는 뺄셈이 결합된 정수 나눗셈이 사용됩니다. 두 접근 방식 모두 동일한 결과를 생성하며 전자가 더 효율적입니다.