대부분의 컴퓨터는 2진 체계로 설계되었기 때문에, 2진법을 알지 못하면 컴퓨터의 동작원리나 데이터 처리방식을 온전히 이해할 수 없다.
25(10)->11001(2)
한 자리의 2진수를 '비트'라고 하며, 1 비트는 컴퓨터가 값을 저장할 수 있는 최소단위이다.
1바이트는 1비트 8개를 묶은 단위로 데이터의 기본 단위로 사용한다.
n비트로 표현할 수 있는 10진수
값의 개수 : 2^n
값의 범위 : 0~2^n-1
8진수 | 1 | 3 | 5 | 3 | 0 | 2 |
2진수 | 1 | 011 | 101 | 011 | 000 | 010 |
16진수 | - | B | - | A | C | 2 |
8은 2의 3제곱이고, 16은 2의 4제곱이기 때문이다
10진수를 다른 진수로 변환하려면, 해당 진수로 나누고 나머지 값을 옆에 적는 것을 더 이상 나눌 수 없을 때까지 반복한 다음 마지막 몫과 나머지를 아래부터 위로 순서대로 적으면 된다
나누기 | 몫 | 나머지 |
---|---|---|
2 | 11 | |
2 | 5 | 1 |
2 | 2 | 1 |
1 | 0 |
11(10)->1011(2)가 된다
10진수 | 2진수 | 2진수 | 2진수 | 2진수 | |
---|---|---|---|---|---|
1011 | = | 1 * 23 | 0 * 22 | 1 * 21 | 1 * 20 |
1011 | = | 1 * 8 | 0 * 4 | 1 * 2 | 1 * 1 |
1011 | = | 8 | 0 | 2 | 1 |
1011 | = | 11 |
1011(2)->11(10)이 된다
7의 '10의 보수'는 3이고, 3의 '10의 보수'는 7이다. 3과 7은 '10의 보수의 관계'에 있다고 한다
1의 보수는 0을 1로, 1을 0으로만 바꾸면 된다.
예를들어, 2진수'0101'의 1의 보수는 '1010'이다.
음수의 2진표현을 구하는 방법
(1) 음수의 절대값을 2진수로 변환한다
(2) (1)에서 구한 2진수의 1을 0으로 0은 1로 바꾼다(1의 보수 구하기)
(3) (2)의 결과에 1을 더한다(2의 보수 구하기, 1의 보수 +1)