C

C언어를 가르칩니다.

C C언어를 가르칩니다.

long, long long, short

long과 long long, short를 알아봅니다.

long

정의

long, 길다는 뜻입니다. 차지하는 비트 수가 더 많습니다. 고로 저장할 수 있는 수의 범위가 늘어납니다. int, double, signed, unsigned와 함께 쓰일 수 있습니다. float이나 char과는 함께 쓰일 수 없습니다.

선언

long int Iamlongint;
long Iamalsolongint; //long만 붙이면 자동으로 long int로 인식합니다.
long double a;
signed long b;
unsigned long c;

크기

printf("int needs %lu bytes. long int needs %lu bytes.",sizeof(int),sizeof(long int));
printf("double needs %lu bytes. long double needs %lu bytes.",sizeof(double),sizeof(long double));

int와의 비교

int a=987654321987654321;
printf("%d",a); // 오버플로우
int b=-987654321987654321;
printf("%d",b); //언더플로우
long int c=987654321987654321;
printf("%ld",c); //제대로 나옵니다.
long int d=-987654321987654321;
printf("%ld",d); //제대로 나옵니다.
오버플로우란 쉽게 말해 '넘친다'는 뜻입니다. 언더플로우는 바닥을 뚫고 내려가는 것이라고 생각하면 됩니다. 입력된 수가 너무 크거나 작으면 그 자료형에 할당된 비트로는 다 표시할 수가 없습니다. 그래서 이렇게 뜬금없는 값이 나옵니다. 자세한 정보는 구글링을 활용하세요.

활용

큰 수가 필요할 때 쓰겠죠? 여러분 통장 잔고에는 쓸 일이 없습니다.

long long

정의

long이 두 개니까 두 배로 길겠네요. 차지하는 비트 수가 long의 두 배입니다. int, signed, unsigned와 함께 쓰일 수 있습니다. float, double, char과는 함께 쓰일 수 없습니다.

선언

long long int A;
long long years_ago; //long long만 쓰면 long long int로 인식됩니다.
unsigned long long a;
long long double b; //에러

크기

위에 있는 long의 크기 단락을 응용해보세요!

int와의 비교

역시 위에 있는 long의 비교 단락을 응용해보세요. 이번에는 좀 더 큰 값을 넣어야 합니다.

활용

더 큰 값에 씁니다.

short

정의

short, 짧다는 뜻입니다. 그럼 차지하는 비트 수가 더 적느냐, 꼭 그런 것은 아닙니다. 표준은 'short는 int보다 크면 안 된다'라고 규정하고 있습니다. 즉, 차지하는 비트 수가 int와 같을 수도 있다는 것이죠.

오로지 int에만 쓰일 수 있습니다.

선언

short int a;
short shorttrack; //short int와 short는 같습니다.

크기

위에 있는 내용을 응용해보세요.

int와의 비교

위에 있는 내용을 응용해보세요. short형 변수를 표시할 때는 %hd 를 사용합니다.

활용

작은 값에 씁니다.

댓글

댓글 본문
작성자
비밀번호
버전 관리
truelight
현재 버전
선택 버전
graphittie 자세히 보기