보수를 활용하여 -값을 표현한다.

 

보수(Complement): 보완해서 완전하게 만들어 주는 수(보완제, 보어 등)

 

이산수학에서 등장한다.

 

*10진수 6: 6에 대한 10의 보수는 4 -> 1 0 

*10진수 46: 46에 대한 10의 보수는 54 ->1 0 0

*2진수 1: 1에 대한 2의 보수는 1 -> 1 0

 

 

보수의 성질: 어떤 수의 보수는 그 수의 음수 표현으로 나타낼 수 있다.

 

*1234-234=1000  -> 1234+(-234)=1000

->(보수화) 1234+0324의 10의 보수

각 자리를 0으로 만드는 수(네자리 수 연산임을 유의한다)

각 자리를 9로 만드는 수(9의 보수 +1)

 

즉, 0324+9765+1=10000

9765+1=9766

 

결국 9766은 234의 음수 값이 된다.

9763은 0234의 10의 보수

 

그러므로 1000이 남는다.

즉, 어떤 수의 보수를 취하면 그 수는 -성질을 띈다.

 

2진수로 연산

23-6=17

 

23의 2진표기
6의 2진표기

(보수화)

-6의 2진표기

각 자리를 모두 0으로 만든다(2의 보수)=>각 자리를 모두 1로 만든 후, +1을 해준다(1의 보수).

 

1을 더한 값

제일 앞 자리가 1이면 음수이다.

결국, 23+(-6)은 다음과 같다.

총 값은 17이 된다. 

 

 실제 컴퓨터에는 뺄셈 연산 기능이 없다.

컴퓨터는 2의 보수법을 활용해 음수를 저장한다. 즉, 보수를 취해 더해버린다.

 

연습문제

 

 

[출처: 선복근 교수님의 C Programming 강의]

'Computer engineering > C' 카테고리의 다른 글

If-else 조건문  (0) 2021.04.21
If 조건문  (0) 2021.04.11
4. 대입 및 산술 연산자  (0) 2021.04.01
3. #define이란?  (0) 2021.04.01
2. 수의 체계 -실수  (0) 2021.03.25

+ Recent posts