2의 보수법은 해당 숫자 양수에 해당하는 2진수와 음수에 해당하는 2진수를 더하면 크기가 초과돼서 사라지고 나머지는 0이 되는 수이다.
# | 2진수 | 부호있는10진수 |
1 | 000 | 0 |
2 | 001 | 1 |
3 | 010 | 2 |
4 | 011 | 3 |
5 | 100 | -4 |
6 | 101 | -3 |
7 | 110 | -2 |
8 | 111 | -1 |
보면 양수1과 음수 -1의 2진수로의 표현은 각각 001과 111인데 이것을 더하면
(1) 000이 되고 (1)은 자릿수를 초과하는 값으로써 버려진다.
좀 더 간단하게 쓰면 2의 보수는 양수의 0인 자리에 1을 넣고 1인 자리에 0을 넣은 값에서 +1하면된다.
3을 2진수로 011이라는 사실만 알 때
-3은 100+001=101이란 사실을 알 수 있다.
반대로 -2가 2진수로 110이라는 사실을 알 때
양수 -2는 001+001=010이라는 사실을 알 수 있다.
'JAVA 02강 변수(Variable) > 진법' 카테고리의 다른 글
실수의 진법변환 (0) | 2021.07.11 |
---|---|
정수의 진법 변환 (0) | 2021.07.11 |
8진법과 16진법(octal base hexadecimal) (0) | 2021.07.11 |
비트(bit)와 바이트(byte) (0) | 2021.07.11 |
10진법과 2진법(decimal, binary) (0) | 2021.07.11 |