오늘도 어김없이 c언어 가보자고~
8진수
는 숫자앞에 0(영)
16진수
는 숫자앞에 0x(영엑스)
를 붙여 구분한다.ex) %x -> %X
#include <stdio.h>
int main(void)
{
printf("%d\n",12); //10진수 정수 상수 출력
printf("%d\n",014); //8진수 정수 상수 출력
printf("%d\n"0xc); //16진수 정수 상수 출력
return 0;
}
12
12
12
소수점
형태와 지수
형태로 표현할 수 있다.아라비아 숫자 0~9,+,- 기호
와 소수점
을 사용하여 표현.무의미한 0은 생략
할 수 있다.#include <stdio.h>
int main(void)
{
printf("%.1lf\n",1e6);
printf("%.7lf\n",3.14e-5);
printf("%le\n",0.0000314);
printf("%.2le\n",0.0000314);
return 0;
}
1000000.0
0.0000314
3.140000e-05
3.14e-05
#include <stdio.h>
int main(void)
{
printf("%c\n",'A'); //문자 상수 출력
printf("%s\n",'A'); //문자열 상수 출력
printf("%c은 %s입니다.\n",'1',"first"); //문자(%c)와 문자열(%s)을 함께 출력
return 0;
}
A
A
1은 first입니다.
문자 상수
이고 "first"는 문자열 상수
이다.큰따옴표
가 붙으면 문자열 상수
이다.상수 종류 | 크기(byte) | 크기(byte) | 바뀌는 형태 |
---|---|---|---|
정수 | 4 | 32 | 2진수 |
실수 | 8 | 64 | IEEEE 754표준 double형 |
문자 | 4 | 32 | 아스키 코드 값과 같은 2진수 |
'A'
의 아스키코드는 65
이므로 정수 상수 65와 같은 형태로 번역된다.정수 13을 컴파일 하면 정수 13은 2진수로 1101이다. (4byte로 표현하기)
|0|0|0|0|0|0|0|0| |0|0|0|0|0|0|0|0| |0|0|0|0|0|0|0|0|
|0|0|0|0|1|1|0|1|
8
개일때마다 1byte
이고 13을 2진수로 고친 1103을 제외한 나머지 칸을 0
으로 채워준다.|0|0|0|0|0|0|0|0| |0|0|0|0|0|0|0|0| |0|0|0|0|0|0|0|0|
|0|0|0|0|1|0|1|0|
이렇게 되어있던게 0과 1을 바꾸게 되어 아래와 같은 결과가 나온다.
|1|1|1|1|1|1|1|1| |1|1|1|1|1|1|1|1| 1|1|1|1|1|1|1|1|
|1|1|1|1|0|1|0|1
종류 | 표현방법 | 사용 예 |
---|---|---|
정수 | 0~9, +, - 기호 사용 | 10, -5, +20, 0 |
실수 | 0~9, +, - (소수점)기호 사용 | 3.4, -1.7, .5, 10.0 |
문자 | 문자를 작은따옴표로 묶음 | 'A', 'b', '0', '*' |
문자열 | 하나 이상의 문자를 큰따옴표로 묶음 | "A", "apple" |
정수 상수
, 10.0은 실수 상수
, 'a'는 문자 상수
, "A"는 문자열 상수
이다.양수
는 4바이트 크기의 2진수로 음수는 2의 보수
로 컴파일부호비트
이후11개는 지수부, 나머지 52개는 소수부