Java
[Java] 2의 보수법
gorusair
2021. 12. 6. 22:52
음수의 2진표현 - 2의 보수법
어떤 수의 'n의 보수'는 더했을 때 n이 되는 수를 말한다. 7의 '10의 보수'는 3이고 3의 '10의 보수'는 7이다.
3 과 7의 관계는 '10의 보수의 관계'에 있다고 한다.
'2의 보수 관계' 역시 더해서 2가 되는 두 수의 관계를 말하며 10진수 2는 2진수로 '10'이다 2진수로 '10'은
자리 올림이 발생하고 0이 되는 수를 뜻한다.
서로 '2의 보수 관계'에 있는 두 2진수로 5와 -5처럼 절대값이 같고 부호가 다른 두 10 진수를 표현하는 것을
'2의 보수법'이라고 한다.
음수를 2진수로 표현하기
10진 음의 정수를 2진수로 변환하려면, 먼저 10진 음의 정수의 절대값을 2진수로 변환한다.
그 다음에 이 2진수의 '2의 보수'를 구하면 된다.
-5(10) -----> 5(10) -----> 0101(2) -----> 1011(2)
2의 보수 구하기
2의 보수 = 1의 보수 + 1
'1의 보수'는 0 을 1로 1을 0으로만 바꾸면 된다
예를 들어, 2 진수 '0101'의 '1의 보수'는 '1010'이다. 여기에 1을 더하기만 하면 2의 보수가 된다
0101 ->1010 --> 1011
음수의 2진 표현을 구하는 방법 | |
(1) 음수의 절대값을 2진수로 변환한다. | -5의 절대값인 5를 2진수로 변환한다. 10진수 5진수 5를 2진수로 변환하면 ' 0101'이다 |
(2) (1)에서 구한 2진수의 1을 0으로 0은 1로 바꾼다(1의보수) | :"0101"이 "1010"이 된다 |
(3) (2)의 결과에 1을 더한다(2의 보수 구하기,1의 보수`+1) | "1010"에 1을 더하면 '1011'이 되고.이것이 -5의 2진 포현이다. |