반응형

0과 1만으로 숫자를 표현하는 방법

 
일상생활에서 숫자를 표현할 때
주로 십진법을 사용한다.
 
그러나 0과 1로 숫자를 표현하려면
이진법을 사용해야 한다.
 

이진법

이진법은 다음 표와 같이
숫자가 1을 넘어가는 시점에
자리올림을 함으로,
0과 1로 모든 수를 표현하는 방법이다.
 

십진수 이진수
0 0
1 1
2 10
3 11

 

그러나 아무런 설명 없이
'11'만 주어진다면,
십진수의 11인지 이진수의 3인지
구분하기 어려울 것이다.
 
이러한 문제를 해결하기 위해
11 끝에 아래첨자로 (2)를 붙이거나
11 앞에 0b를 붙이고는 한다.
 

이진수의 음수 표현

일상생활에서 음수를 표현하기 위해서는
단순히 숫자 앞에 부호만 표시하면 된다.
 
그러나 이진수에서는 다른데,
가장 많이 쓰이는 방법이
2의 보수를 구하여 나타내는 방법이다.
 
'어떤 수를 그보다 큰 2의 n제곱에서 뺀 값'
이것이 2의 보수의 사전적 의미이다.
 
이렇게 보면 이해하기 참 어렵다.
사전적 의미대로 예시를 들면 다음과 같다.
 
"-3을 이진수로 나타내어라"
3은 이진수로 11이다.
11보다 큰 2의 n제곱 값은 100이므로,
이진수 100 - 11의 값은 01이 된다.
 
이를 보다 쉬운 방법으로 구할 수 있는데,
이진수의 각 자리 값을 반대로 적고
여기에 1을 더하면 된다!
 
"-3을 이진수로 나타내어라"
3은 이진수로 11이다.
11의 각 자리 값을 반대로 적으면 00이다.
00에 1을 더한 값은 01이 된다.
 

그러나, 이진수로 '01'만 나타낸다면
양수 01을 나타낸 것인지
11을 음수로 표현한 01을 나타낸 것인지
구분하기 어렵다.
 
이러한 문제를 해결하기 위해
컴퓨터 내부에서 해당 숫자가
음수, 양수임을 나타내는
플래그(flag) 를 사용한다.
 

십육진법

 

비트만으로는 모든 용량을 표기하기에는
어려움이 있어서 바이트, 킬로바이트,.. 와 같은
정보 단위를 만들어 사용한 맥락과 비슷하게
 
이진수만으로 모든 숫자를 표기하기에는
숫자의 길이가 너무 길어진다는 단점이 있어서
십육진법도 자주 사용한다.

 
십육진법은 다음 표와 같이
수가 15를 넘어가는시점에
자리 올림을 하는 숫자 표현 방법이다.
 

십진수 십육진수
14 E
15 F
16 10
17 11

 

이진수와 마찬가지로
'11'만 주어진다면,
십진수의 11인지 십육진수의 17인지
구분하기 어려울 것이다.
 
이러한 문제를 해결하기 위해
11 끝에 아래첨자로 (16)를 붙이거나
11 앞에 0x를 붙이고는 한다.
 

이진수와 십육진수 간 변환

이진수와 십육진수 간의 변환은
이해하기도 사용하기도 쉽다.
 
이는 곧 굳이 많은 진법 중에서도
십육진법을 사용하는 이유가 된다.
 
위 사진과 같이 각 십육진수는
추가적인 계산과정 없이
4자리의 이진수로 표현이 가능하며,
반대의 경우도 마찬가지이다.
 
"십육진수 1A2B를 이진수로 나타내라"
1A2B의 각 자리수를 이진수로 나타내자
0001, 1010, 0010, 1011
위 값을 이어붙이면 완성!
0001101000101011

반응형

+ Recent posts