2’s complement
2의 보수시스템에 대해서 자꾸 까먹는거 같은데 일단 basic 아이디어는 not ( 비트전체 플립 )을 한뒤에 +1을 하는것이다.
간단한 예를 들어보자면 1은 0000 0001
이걸 2의 보수를 하면 먼저, ~0000 0001 을 하면 1111 1110
1111 1110 + 1 = 1111 1111
따라서 1111 1111 가 -1이 된다.
이러한 방식인데 이것만 2의보수다 라고 생각하면 안된다. 정말 2의 보수의 진가는 실제로 더할때나온다.
예를 들어 -1 + 1 = 0 이다.
이걸 2의 보수형태로 더한다면, 0000 0001 + 1111 1111 인데 좀더 가시성을 더해서
0x01 + 0xFF = 0x00이 된다. 즉 0xFF ( ex . 0xFFFFFFFFCDE0 ) 과 같이 2의 보수로 나타낸 숫자를 단순히 더하면되기에 이걸 명심해둬야 한다.
계산기에서도 바로 더하면 된다.