시스템구조

네트워크 이론_IP헤더_체크섬, checksum, 1의보수, 2의보수

스윙스윙 2021. 12. 29. 13:32

▣ 네트워크 이론_IP헤더_체크섬, checksum, 1의보수, 2의보수

 

2015년 76번

정답 : 2번

좀 더 쉽게 푸는 방법은 뒷자리수만 더하면 3a가 됨

0+9+6+2+a+8+0+e+9 = 9+6+2+a+8+e+9 = 9+8+10+8+14+9 = 27+22+9 = 58 = 38(=16*3) + 10 = 3a

 

0 : 0000

9 : 1001

6 : 0110

2 : 0010

A : 1010

8 : 1000

0 : 0000

E : 1110

9 : 1001

------------

...1010(결과 = 16진수 A)

 

(Case1) 상기 결과(1010)에 오버플로우 1을 더해서 1의 보수를 취함

--> 1010 + 1(오버플로우) = 1011

1011의 1의 보수(0과 1을 반전)

--> 0100 = 4

 

(Case2) 상기 결과(1010)의 2의보수를 구함

-->  1010(2진수) -> 0101(1의보수) -> 0110(2의 보수) = 6 

 

여기서 한자리만 남기면 a가 됨.

그리고 a의 2의 보수를 구하면 4가 되므로 (해석 오류 Case1로 풀어야함)

보기 중 뒷자리가 4인(2)번을 고를 수 있음

 

* 버려야 되는 문제임

2의 보수(--補數, 영어: two's complement)란 어떤 수를 커다란 2의 제곱수에서 빼서 얻은 이진수이다. 2의 보수는 대부분의 산술연산에서 원래 숫자의 음수처럼 취급된다. 주어진 이진수보다 한 자리 높고 가장 높은 자리가 1이며 나머지가 0인 수에서 주어진 수를 빼서 얻은 수가 2의 보수이다. 혹은 주어진 이진수의 모든 자리의 숫자를 반전(0을 1로, 1을 0으로)시킨 뒤 여기에 1을 더하면 2의 보수를 얻을 수 있다.