본문 바로가기
C

C언어 상수 표현 방법, 진수별 수 표현 방법 정리

by 규우울 2021. 12. 6.
반응형

안녕하세요 프로그래밍의 데이터에는 정수, 실수, 문자열, 문자가 있습니다.

 

하지만 이 데이터 중에서 바꿀 수 있는 데이터와 바꿀 수 없는 데이터가 있는 것도 알고 계신가요??

 

바꿀 수 있는 데이터는 변수라고 하고 바꿀 수 없는 형태는 상수라고 합니다.

 

예를 들어 바꿀 수 있는 데이터는 내 나이, 키, 주소 등등이 있지만 바꿀 수 없는 데이터 (상수)는

 

태어난 년도, 태어난 시간 등등이 있습니다.

 

상수는 기본적으로 아리바이 숫자 0~9, +,- 기호를 사용하고 이를 세 가지 진법으로 표현할 수 있습니다.

(10진수, 8진수, 16진수)

 

참고로 2진수는 표현 형태가 길어지므로 사용하기 비효율적이라서 제외되었습니다.

 

10진수를 15까지 표현하면

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

 

8진수를 15까지 표현하면

1 2 3 4 5 6 7 10 11 12 13 14 15 16 17

 

16진수를 15까지 표현하면

 

1 2 3 4 5 6 7 8 9 A B C D E F 이렇게 표현됩니다.

 

그렇지만 C언어에서는 10진수,8진수 표현 방법이 수학적 표현 방법과 다릅니다.

 

왜냐하면 밑수를 프로그래밍 언어에서는 표기할 수 없기 때문입니다.

 

그래서 C언어는 8진수는 숫자 앞에 0을 16진수는 숫자 앞에 0x를 붙여서 구분합니다.

 

10진수에서 12를 8진수와 16진수에서 표시해보겠습니다.

 

8진수 = 014

 

16진수 = 0xc

 

이렇게 표현하는 방법은 다르지만 C언어에서는 모두 같은 12입니다.

 

그러면 이제 C언어에서 표현하면 어떻게 되는지 확인해볼까요??

#include <stdio.h>

int main(void)
{
    printf("%d\n", 12);
    printf("%d\n", 014);
    printf("%d\n", 0xc);
    return 0;
}

값 : 12

12

12 이렇게 나왔습니다.

 

참고로 거꾸로 표현도 가능합니다.

 

#include <stdio.h>

int main(void)
{
    printf("%o\n", 12);
    printf("%x\n", 12);
    printf("%X\n", 12);
    return 0;
}

%d대신에 %o를 쓰면 8진수

%x는 16진수(소문자)

%X는 16진수(대문자)로 출력됩니다.

반응형

'C' 카테고리의 다른 글

C언어 const를 이용하여 상수 만들기  (0) 2021.12.09
C언어 변수 선언  (0) 2021.12.08
C언어 정수와 실수  (0) 2021.12.05
C언어 main 함수 구조와 주석  (0) 2021.12.02
C언어로 첫 프로그램 만들어보기..  (0) 2021.11.29

댓글