덧셈을 이용하여 수행한다.
먼저 두개의 나열된 비트에 대해서 감산 연산을 한다 했을 때, 연산 값을 보수화를 해주어야 한다.
보수화를 위해서는 XOR 연산을 해주어야 하는데, 해당 연산을 하기 전에 먼저 가감산기에 setting 값이 설정된다. 여기서 setting은 C0의 값이며 해당 값이 1일때, 감산 연산을 하고, 해당 비트 값은 연산값과 연결되어 있는 XOR 게이트 각각에 들어가서 연산 값을 보수화 시켜준다.
cf) 여기서 C0를 1을 넣은 이유 : 2의보수는 1을 더해주기 때문이다.
부호가 없는 정수의 곱셈은 세개의 레지스터가 들어간다.
첫번째로 Q레지스터에 연산값을 넣어주고, A레지스터는 0으로 초기화 합니다.
두번째로 Q0 즉 Q레지스터의 첫번째 자리수를 제어회로에 넣고 해당 값이 1이면 M레지스터에 있는 피승수의 값과 A레지스터의 값을 더해줍니다.
그리고 그 더해진 값을 올림수를 포함하여 Q레지스터 쪽으로 우측 시프트 연산을 한칸만큼 해줍니다. (>>1)
만약에 여기서 Q레지스터의 첫번째 자리수가 0인 경우에는 가산기 연산기는 작동을 하지 않고 오른쪽 시프트 연산자만 작동 하게 됩니다.
부동 소수점 : 소수 점의 위치를 이동시킬 수 있는 수 표현 방법
ex)
위와 같은 부동 소수점은 십진수 뿐 아니라, 2진수에서도 사용 할 수 있다.
(시프트 개념을 이용 좌측시프트 * 2 , 우측시프트 / 2)
이 부동 소수점 수 형식은 세개의 필드로 구성되어 있다.
1) S필드(1비트) : 부호비트 영역
2) E필드(지수) : 지수의 값 영역
3) M필드(가수) : 가수, 즉 E필드를 얻은 값과 곱해지는 값의 영역
-지수(E)필드의 비트수 증가 = 표현 가능한 수의 범위 확장
-가수(M)필드의 비트 수 증가 = 정밀도 증가
한계
1) 2의 승수로 표현된 수만 표현이 가능하다.
2) 오직 세팅되어져 있는 영역 안에서의 값만을 가질 수 있다.