본문 바로가기

6. 컴퓨터 공학 공부

[108] 컴퓨터구조 05차시 보수의 개념과 정수의 덧셈

1. 보수 개념

가. 수의 분류

나. 보수의 정의

1) 보수(補數, Complementary Number)

상호 보완하는 수, 임의의 수를 보완해주는 다른 임의의 수

https://ko.wikipedia.org/wiki/보수_(수학)

 

보수 (수학) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 보수(補數)는 보충을 해주는 수를 의미한다. 이를테면 1에 대한 10의 보수는 9, 4에 대한 15의 보수는 11의 개념이다. 1에 대한 2의 보수는 1이다. 보수를 이용한 계

ko.wikipedia.org

2) r진법에서 정의되는 보수

(r-1)의 보수와 r의 보수(진보수)가 존재

3) (r-1)의 보수

A라는 수에 B라는 수를 더한 결과값의 각 자리가 (r-1)이 될 때, B를 A에 대한 (r-1)의 보수라고 정의

10진수 237에 대한 9의 보수는 762

r진법에서 임의의 정수 N이 자릿수가 n개로 구성될 때, (r-1)의 보수를 \((r^{n}-1)\:-\:N\) 으로 나타낼 수 있음.

2진법에서 1의 보수를 구하면 각 자리 수를 0은 1로, 1은 0으로 바꾼 수와 같아짐.

4) r의 보수

r진법에서 임의의 정수 N이 자릿수가 n개로 구성될 때, r의 보수를 \(r^{n}\:-\:N\)(단, N=0이면 0)으로 나타냄.

따라서 r의 보수는 (r-1)의 보수에 1 더한 수

2. 데이터의 2진수 표현

가. 수의 분류

정수(양의 정수, 음의 정수), 소수

나. 2진 정수 표현

1) 부호가 존재하는 2진 정수의 표현

최상위 비트를 부호 비트로 사용(0은 양수, 1은 음수)

나머지 비트는 적절한 형태로 크기 값을 표현

2) 수의 크기 표현

양수는 2진수로 표현

음수를 표현하는 방법은 단순 크기값에 부호만 붙이는 방법, 1의 보수로 표현하는 방법, 2의 보수로 표현하는 방법이 있음.

2의 보수로 표현하는 방법을 주로 사용함.

3) 부호화-크기 표현

n비트로 구성된 2진수에서 최상위 비트는 부호를, 나머지 비트는 수의 절대 크기를 나타냄.

8bit로 -9를 나타내면 10001001(최상위 비트 1이 음수를 나타냄)

가장 간단한 음수 표현 방법

덧셈과 뺄셈 연산을 위해 부호 비트와 크기 부분을 별도로 처리하여야 함.

0의 표현이 두 개 존재(표현할 수 있는 수의 범위가 적음)

4) 1의 보수 표현

모든 비트들을 반전하여 표현

보수를 이용하면 부호 비트가 자연스럽게 변경되고 그 크기도 적절한 형태로 변경됨.

0의 표현이 두 개 존재

5) 2의 보수 표현

모든 비트들을 반전하고 결과값에 1을 더함.

마찬가지로 최상위 비트가 자연스럽게 변경됨.

8bit로 -9를 나타내면 11110111(00001001에 대한 2의 보수)

3bit 100은 -4를 의미

0의 표현이 한 개이고, 음수 표현이 1개 더 많음

6) 비트 확장

비트 확장의 정의 및 종류

부호가 존재하는 데이터의 비트 수를 늘리는 연산

부호화-크기 표현의 비트 확장과 2의 보수 표현의 비트 확장이 있음.

부호화-크기 표현의 비트 확장

부호 비트를 확장되는 최상위 자리로 이동시키고 새로 확장되는 자리에는 0으로 채움.

8bit -9가 16bit로 확장되면 10001001이 1000000000001001로 변환

2의 보수로 표현된 2진수의 비트 확장

확장되는 상위 비트들을 부호 비트와 동일한 값으로 채움

8bit -9가 16bit로 확장되면 11110111이 1111111111110111로 변환

다. 2진수 소수 표현

1) 10진 소수를 2진 소수로 변환

예를 들어 137.625 는

\((1 \times 10^{2}) + (3 \times 10^{1}) + (7 \times 10^{0}) + (6 \times 10^{-1}) + (2 \times 10^{-2}) + (5 \times 10^{-3})\)

로 나타낼 수 있고, 2의 거듭제곱 꼴로 나타내면

\( (1 \times 2^{7}) + (1 \times 2^{3}) + (1 \times 2^{0}) + (1 \times 2^{-1}) + (1 \times 2^{-3}) \)

으로 나타낼 수 있음.

따라서 2진 소수로의 표현은 10001001.101

2) 부동소수점

정규화: 최초의 유효 숫자가 소수 이하 첫째 자리에 위치하도록 조정하는 과정