독학으로 배우는 C언어 010 자료형과 연산 4
Contents
1. long 형
정수형 변수에는 큰 수를 다루는 자료형으로 long 형을 사용한다. long 형이 다룰 수 있는 수의 범위는 -2147483648 에서 2147483647까지다. long 형의 허용범위에 의문점이 생길 수 있다. 왜냐면 int 형과 같기 때문이다.
컴퓨터는 CPU의 성능에 따라 16bit, 32bit, 64bit로 성능이 발전해 왔다. 지금 우리가 사용하고 있는 컴퓨터는 대부분 64bit 운영체제이다.
초창기 16bit CPU를 사용할 때만 해도 int 형과 long 형은 데이터 허용범위가 2바이트와 4바이트로 차이가 있었다. 그런데 32bit CPU가 등장하면서 int 형과 long 형의 허용범위가 같아졌다.
int 형은 CPU 성능에 따라 가변성을 가지고 있으므로 int 형으로 사용하는 것이 long 형보다 유리할 수 있다.
실습 1: int 형과 long 형의 출력결과 비교
다음의 프로그램을 작성하여 ex022.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
int num1, sum;
long num2;
num1 = 2147483647;
num2 = 2147483647;
sum = num1 + num2;
printf("%d + %ld = %d \n", num1, num2, sum);
return 0;
}
◉ 설명 : 행 설명
4: int 형 변수를 확인해 본다.
5: long 형 변수를 확인해 본다.
6; 7: 2147483647을 각각의 변수에 대입시켰다.
int 형과 long 형의 최대허용값이 2147483647이다.
이 값을 초과한 결과 값은 신뢰할 수 없는 엉뚱한 값이 출력된다.
ex22.c 의 내용 중에서
6행과 7행의 값을 다음과 같이 변경하고 실행시켜 보자.
#include<stdio.h>
int main(void)
{
int num1, sum;
long num2;
num1 = 2147483648;
num2 = 2147483648;
sum = num1 + num2;
printf("%d + %ld = %d \n", num1, num2, sum);
return 0;
}
int 형과 long 형의 최대허용값이 같다는 것을 알 수 있다.
2. unsigned int 형
음수를 사용할 수 없으나 int형의 2배 만큼의 양수를 처리할 수 있다.
실습 1: 양수만 사용하는 unsigned int형
다음의 프로그램을 작성하여 ex023.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
unsigned int num1, num2, sum;
num1 = 2147483647;
num2 = 2147483647;
sum = num1 + num2;
printf("%u + %u = %u \n", num1, num2, sum);
return 0;
}
◉ 설명 : 행 설명
4: 큰 수를 처리하기 위해 프로그램에서 사용될 변수 모두를 unsigned int형으로 선언했다.
unsigned int 형의 허용범위는 0 ~ 4,294,967,295이다.
8: 형식 지정자를 %d가 아닌 %u를 사용한 것에 유의해야 한다.
자료형에 따라 형식 지정자를 사용해야 하는 것을 꼭 기억하도록 하자.
3. %u 형식 지정자 사용
앞에서 %d 형식 지정자에서 출력 형태를 지정해서 사용해 봤다.
%u도 %d와 같은 출력 형태로 사용할 수 있다.
양식 | 출력형태 | 내용 |
("%u",a) | 1234 | 정수 출력 |
("%8u",a) | ....1234 | 오른쪽을 기준으로 출력 |
("%-8u",a) | 1234.... | 왼쪽을 기준으로 출력 |
("%08u",a) | 00001234 | 수치 앞 공백을 0으로 채움 |
'C 프로그래밍' 카테고리의 다른 글
독학으로 배우는 C언어 012 자료형과 연산 6 (0) | 2024.06.25 |
---|---|
독학으로 배우는 C언어 011 자료형과 연산 5 (0) | 2024.06.20 |
독학으로 배우는 C언어 009 자료형과 연산 3 (0) | 2024.06.12 |
독학으로 배우는 C언어 008 자료형과 연산 2 (2) | 2024.06.10 |
독학으로 배우는 C언어 007 자료형과 연산 1 (4) | 2024.06.08 |
댓글