1의보수와 2의 보수 알고넘어가기
- 2의 보수는 1의 보수에 1을 더한 값과 같습니다.
예시) 0111에 대한 2의 보수를구하기 위해서는 1을 보수를 먼저 구합니다. 1000이 나오죠? 그 뒤에 1을 더하면 2의보수 1001을 얻을 수 있습니다.ㅣ;
더하기 1->
▣ 덧셈 : 기본적인 덧셈입니다. 10진수 덧셈을 진행하듯이 2진수 덧셈을 하시면 됩니다.
예시) 2진수 1101 + 1001 = 10110 10진수처럼 덧셈하시면 됩니다. 간단하죠?
▣ 뺄셈 : 컴퓨터 내부에서는 덧셈만 가능하기 때문에 뺄셈은 보수를 이용하여 덧셈이 가능하게 변경합니다.
◎ 1의 보수 뺄셈
1. 빼는수의 1의 보수를 구한다음 더합니다.
2-1. 덧셈결과에 자리올림이 생겼다면 최하위 비트에 1을 더하고 자리올림된 것은 제외합니다.
2-2. 덧셈결과에 자리올림이 생기지 않았다면 연산 결과에 대해 1의 보수를 구한 후 '-' 부호를 붙입니다.
예시1) 2진수 1101 - 1001 -> 1101 + 0110 = 10011 (오른쪽 피연산자의 1의 보수를 구하고 더합니다) -> 결과:0100 (최상위 비트 1을 제외하고 최하위 비트에 1을 더합니다.)
예시2) 2진수 0101 - 1001 -> 0101 + 0110 = 1011 (오른쪽 피연산자의 1의 보수를 구하고 더합니다) -> -0100 ( 연산결과에 1의보수를 구합니다. 그리고 '-' 를 붙입니다.)
◎ 2의 보수 뺄셈
1. 빼는 수의 2의 보수를 구하고 더합니다
2. 최상위비트 자리올림이 생겼다면 자리올림을 제외한 나머지 부분이 연산결과입니다.
2. 최상위비트 자리올림이 발생되지 않았다면 연산 결과의 2의 보수를 구한 후 '-' 부호를 붙입니다
예시1) 1101 - 1001 -> 1101 + 0111 = 10100 ( 오른쪽 피연산자의 2의 보수를 구한 뒤 더함 ) -> 결과 0100 ( 연산값의 최상위 비트는 제외한다)
예시2) 0101 - 1001 -> 0101 + 0111 = 1100 ( 오른쪽 피연산자의 2의 보수를 구한 뒤 더함) -> 결과 -0100 ( 연산결과에 2의 보수를 구한뒤 '-' 부호를 붙임
'훈, IT 공부 > 컴퓨터기초' 카테고리의 다른 글
CPU에 관하여 코어,쓰레드,클럭,HT (0) | 2018.08.23 |
---|---|
[자료구조] 자료구조란 무엇인가!? 간단히 짚고만 가자 (0) | 2018.03.08 |
댓글