[C 프로그래밍] 8장. 2진수, 8진수, 16진수
2진수에 들어 가기 앞서서
무슨 무슨 진수 라는것은 숫자체계를 의미합니다.
우리가 현재 쓰는 숫자체계는 10진수 입니다.
-------------------------------------
예를 들어
10진수 1234가 있다고 하면
이 값은
1×1000 + 2×100 + 3×10 + 4×1
자리수가, 1, 10, 100, 1000으로
10씩 곱해집니다.
-------------------------------------
그리고 각각의 자리에 쓸 수 있는 값은
0~9 까지 입니다.
-------------------------------------
즉, 자리수가 10씩 곱해지고
자리에 쓸 수 있는 값이 0~9
자리에 쓸 수 있는 값이 0~N-1인 것이
10진수 라는 것입니다.
-------------------------------------
그리고 2진수에 대해 얘기하기 전에
우리는 2진수를 이미 본적이 있습니다.
영화나 각종 영상에서 본적이 있습니다.
-------------------------------------
-------------------------------------
그래서, 아까 10진수와 마찬가지로
10진수가 10씩 곱해지고 0에서9까지 사용할수 있었던 것처럼
그래서, 2진수는 0과 1로만 이루어져 있습니다.
그리고 자리가 2씩 곱해집니다.
-------------------------------------
다음으로 8진수에 대해서 살펴보겠습니다.
10진수와 2진수를 이해했다면 8진수도 쉽습니다.
-------------------------------------
8진수는 자리수가 8씩 곱해지고
쓸 수 있는 숫자가 0~7까지 입니다.
예를 들어
8진수 32가 있다면
3×8 + 2×1= 26
10진수로 변환되어 26이 됩니다.
-------------------------------------
다음으로 16진수에 대해서 살펴보겠습니다.
-------------------------------------
16진수는 마찬가지로
자리수가 16씩 곱해지고
쓸 수 있는 숫자가 0~15까지 입니다
그런데 여기서 문제가 발생합니다.
10은 두 자리 라서
한 숫자 안에 넣을 수가 없습니다.
-------------------------------------
그래서, 16진수는
0~9까지는 숫자를 쓰고
10~15까지는 문자를 씁니다.
10는 A, 11은 B, 12는 C
13은 D, 14는 E, 15는 F
-------------------------------------
그래서,
16진수 A3이 있다면
10 × 16 + 3×1
10진수로 163이 됩니다.
-------------------------------------
다음과 같은 예제 코드가 있습니다.
-------------------------------------
실행결과는 다음과 같습니다.
-------------------------------------
처음 보는 서식문자 %o는 8진수 정수 형태를 출력하는 서식문자 입니다.
-------------------------------------
이 %o는 octal의 줄임말로 8진법이라는 뜻입니다.
Cpu가 8개인것을 의미하는 Octa core
팔각형을 의미하는 octagon
다리가 8개인 문어를 의미하는 Octapus
모두 8과 관련된 단어 입니다.
-------------------------------------
%x는 16진수 정수 형태의 서식문자를 말합니다.
-------------------------------------
%x는 hexa decimal의 줄임말로
16진법이라는 뜻을 가지고 있습니다.
-------------------------------------