02-3.1(10진법과 2진법)~3.6(음수의 2진 표현-2의 보수법)
3.1 10진법과 2진법
2진법은 0과 1로만 데이터를 표현
3.2 비트(bit)와 바이트(byte)
비트는 한 자리의 2진수이다
1 비트는 컴퓨터가 값을 저장할 수 있는 최소 단위
바이트는 1 비트 8개를 묶은 단위
워드는 'CPU가 한 번에 처리할 수 잇는 데이터의 크기'를 의미하고 4 바이트(32 비트)이다.
n 비트로 표현할 수 있는 10진수 값의 개수: 2^n 값의 범위: 0 ~ 2^n-1 |
3.3 8진법과 16진법
8진수는 2진수 3자리, 16진수는 2진수 4자리를 각각 한 자리로 표현할 수 있어서 자리수가 짧아져서 알아보기 쉽고 서로 간의 변환방법 또한 매우 간단
3.4 정수의 진법 변환
10진수를 n진수로 변환
10진수를 n진수로 나누고 나머지 값을 옆에 적는 것을 더 이상 나눌 수 없을 때까지 반복한 다음 마지막 몫과 나머지를 아래부터 위로 순서대로 적음
n진수를 10진수로 변환
각 자리의 수에 해당 단위의 값을 곱해서 모두 더함
3.5 실수의 진법변환
10진 소수점수를 2진 소수점수로 변환하는 방법
1. 10진 소수에 2를 곱한다.
2. 위의 결과에서 소수부만 가져다가 다시 2를 곱한다.
3. (1)과 (2)의 과정을 소수부가 0이 될 때까지 반복한다.
4. 위의 결과에서 정수부만을 위에서 아래로 순서대로 적고, '0.'을 붙이면 된다.
※(3)의 과정에소 소수가 0이 되지 않고 무한히 반복될 수도 있다.
3.6 음수의 2진 표현-2의 보수법
2의 보수법
'n의 보수'는 더했을 때 n이 되는 수를 말함
2진수로 '10'은 자리올림이 발생하고 0이 되는 수를 뜻함
절대값이 같고 부호가 다른 두 10진수를 표현하는 것을 '2의 보수법'이라고 함
음수를 2진수로 표현하기
먼저 10진 음의 정수의 절대값을 2진수로 변환한 후 2진수의 '2의 보수'를 구한다
2의 보수 구하기
2의 보수 = 1의 보수 + 1 |
'1의 보수'는 0을 1로, 1을 0으로 바꾸면 됨
왜 '1의 보수 + 1'은 '2의 보수'인가?
어떤 2진수가 있을 때, 이 2진수의 1의 보수를 더하면 모든 자리가 1이 된다.
예) 0101 + 1010 = 1111
위의 식에서 양변에 1을 더하면 우변은 0이 된다. 올림이 발생하지만 4비트를 넘는 값이라 저장할 공간이 없어서 버려진다.
예) 0101 + 1010 +1 = 1111 +1
0101 + (1010 +1) = 10000
위의 식에서 알 수 있듯이 어떤 수에 '1의 보수 +1'을 더하면 0이 되므로 '1의 보수 +1'은 '2의 보수'와 같다는 것이 증명된다.
중요한 내용 |
음수의 2진 표현을 구하는 방법 (1) 음수의 절대값을 2진수로 변환한다. : -5의 절대값인 5를 2진수로 변환한다. 10진수 5를 2진수로 변환하면 '0101'이다. (2) (1)에서 구한 2진수의 1을 0으로 0은 1로 바꾼다. (1의 보수 구하기) : '0101'이 '1010'이 된다. (3) (2)의 결과에 1을 더한다. (2의 보수 구하기, 1의 보수 +1) : '1010'에 1을 더하면 '1011'이 되고, 이것이 -5의 2진 표현이다. |