컴퓨터와 같은 전기회로는 2진법이 적합
비트와 바이트
1bit= 한 자리의 2진수 = 한칸
데이터의 기본 단위 = 1byte / / 1byte= 8 bit
CPU가 한 번에 처리할 수 있는 데이터 크기 = Word (CPU성능에 따라 달라지는 단위)
n비트=>2ⁿ개 표현 => 범위: 0~2ⁿ-1
3.3 8진법과 16진법
8진법은 0~7까지가 한단위 => 2진법에서는 3자리
16진법은 0~15까지가 한단위 => 2진법에서는 4자리씩 끊어서
참고로 16진법은 10에서 15까지 차례대로 A~F까지
3.4 정수의 진법 변화
10진수를 n진수로 변환 => n으로 나누고 나머지들을 거꾸로 타고 올라가기
n진수를 10진수
=> 각 자리를 차례대로 첫번째 자리 숫자xn⁰+두번째 자리 숫자xn¹+...
3.5 실수의 진법 변환
10진 소수를 2진수로 바꾸는 법
ex) 0.625X2 = 1.25
0.25X2 = 0.5
0.5X2=1.0 <<더이상 소수점이 없으므로 종료>>
==>0.101
3.6 음수의 2진 표현 - 2의 보수법
x | 2진수 | 부호없는 10진수 | 설명 |
---|---|---|---|
1 | 0000 | 0 | 0으로 시작 절반 |
2 | 0001 | 1 | ->앞 0이 양의 부호의 칸 |
3 | 0010 | 2 | |
4 | 0011 | 3 | |
5 | 0100 | 4 | |
6 | 0101 | 5 | |
7 | 0110 | 6 | |
8 | 0111 | 7 | |
9 | 1000 | 8 | 1으로 시작 절반 |
10 | 1001 | 9 | ->앞 1이 음의 부호의 칸 |
11 | 1010 | 10 | |
12 | 1011 | 11 | |
13 | 1100 | 12 | |
14 | 1101 | 13 | |
15 | 1110 | 14 | |
16 | 1111 | 15 |
x | 2진수 | 부호없는 10진수 | 설명 |
---|---|---|---|
1 | 0000 | 0 | 양수 |
2 | 0001 | 1 | |
3 | 0010 | 2 | |
4 | 0011 | 3 | |
5 | 0100 | 4 | |
6 | 0101 | 5 | |
7 | 0110 | 6 | |
8 | 0111 | 7 | |
9 | 1000 | -0 | 1. 2진수 증가하면 |
10 | 1001 | -1 | 10진수 감소 |
11 | 1010 | -2 | 2. -0이 존재 |
12 | 1011 | -3 | 3. 양수+음수=Not 0 |
13 | 1100 | -4 | |
14 | 1101 | -5 | |
15 | 1110 | -6 | |
16 | 1111 | -7 |
x | 2진수 | 부호없는 10진수 | 설명 |
---|---|---|---|
1 | 0000 | 0 | 양수 |
2 | 0001 | 1 | |
3 | 0010 | 2 | |
4 | 0011 | 3 | |
5 | 0100 | 4 | |
6 | 0101 | 5 | |
7 | 0110 | 6 | |
8 | 0111 | 7 | |
9 | 1000 | -8 | 음수 |
10 | 1001 | -7 | |
11 | 1010 | -6 | |
12 | 1011 | -5 | |
13 | 1100 | -4 | |
14 | 1101 | -3 | |
15 | 1110 | -2 | |
16 | 1111 | -1 |
10의 보수 : N의 보수란 더해서 N이 되는
3이 되는 10에 대한 보수는 7이다.
1의 보수 (ones complement= 1 들의 보수) :
더해서 1111..(2)=2^n-1
ex) 1001의 1의 보수는 0110이다.
2의 보수 (two's complement) 더해서 자리올림이 발생하는
즉 더해서 2^n이 되는
ex) 1001의 2의 보수는 0111이다.
즉 더해서 (2^n-1이 되는 1의 보수)+1= 2^n
따라서 이 2의 보수는 어떤 양수에 대한 음수의 2진수를 구하는 방법이라고 기억해두자