C_프로그래밍

[C 프로그래밍] 8장. 2진수, 8진수, 16진수

팔공산호랑이 2020. 4. 4. 00:38

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진수는 01로만 이루어져 있습니다.

그리고 자리가 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까지는 문자를 씁니다.

10A, 11B, 12C

13D, 14E, 15F

-------------------------------------

그래서,

16진수 A3이 있다면

10 × 16 + 3×1

10진수로 163이 됩니다.

-------------------------------------

다음과 같은 예제 코드가 있습니다.

-------------------------------------

실행결과는 다음과 같습니다.

-------------------------------------

처음 보는 서식문자 %o8진수 정수 형태를 출력하는 서식문자 입니다.

-------------------------------------

%ooctal줄임말로 8진법이라는 뜻입니다.

Cpu8개인것을 의미하는 Octa core

팔각형을 의미하는 octagon

다리가 8개인 문어를 의미하는 Octapus

모두 8과 관련된 단어 입니다.

-------------------------------------

 

%x16진수 정수 형태의 서식문자를 말합니다.

-------------------------------------

%xhexa decimal줄임말로

16진법이라는 뜻을 가지고 있습니다.

-------------------------------------