자료형
1
Friday, March 25,
자료형이란?
2
6.1 ���� (1/4)!���
! �� ���� ��� ��
!���� �� ! ���: ��� ���� ��� ��! ��: ��� ��� �� ���� ��� ��
int num1;��
num1int���
&num1����
��
����� ����������
Friday, March 25,
자료형의 종류
3
6.1 ���� (1/4)!���
! �� ���� ��� ��
!���� �� ! ���: ��� ���� ��� ��! ��: ��� ��� �� ���� ��� ��
int num1;��
num1int���
&num1����
��
����� ����������
✓ char형은 문자형 데이터를 표현함✓많은 종류의 자료형이 필요한 이유- 자료형마다 메모리 공간의 크기가 다름- 자료형마다 서식문자와 데이터 표현 범위가 다름
Friday, March 25,
자료형의 크기(1/3)
4
6.1 ����� (2/4)
!���� ��! sizeof ���: ���� ��� ��� ���
! sizeof ���� ��• ‘���� ���� �� ��� �� ��.’
�� � �sizeof(���) printf(“%d”, sizeof(int) ); ���� �� ��� ��
sizeof(��) int num1 = 3;printf(“%d”, sizeof(num1) ); ��� �� ��� ��
����������������Friday, March 25,
자료형의 크기(2/3)
5
6.1 ��� � (3/4)---[6-1.c ��]
char num1=10;short num2=20;int num3=30;long num4=40; printf("\n--------�� ���� � ��� ��--------\n");printf(“ char�� �� %d� �, %d� � \n", sizeof(char), sizeof(num1) );printf("short�� �� %d� �, %d� � \n", sizeof(short), sizeof(num2) );printf(“ int�� �� %d� �, %d� � \n", sizeof(int), sizeof(num3) );printf(“ long�� �� %d� �, %d� � \n", sizeof(long), sizeof(num4) );
float num5=3.14;double num6=3.15;long double num7=3.17;
printf("\n--------�� ���� � ��� ��--------\n");printf(“ float�� �� %d� �, %d� � \n", sizeof(float), sizeof(num5) );printf(“ double�� �� %d� �, %d� � \n", sizeof(double), sizeof(num6) );printf("long double�� �� %d� �, %d� � \n", sizeof(long double), sizeof
����� ����������
실행결과char형의 크기 1바이트, 1바이트short형의 크기 2바이느, 2바이트int형의 크기 4바이트, 4바이트long형의 크기 4바이트, 4바이트
실행결과float형의 크기 4바이트, 4바이트double형의 크기 8바이트, 8바이트long double형의 크기 8바이트, 8바이트
Friday, March 25,
자료형의 크기(3/3)
6
6.1 ����� (4/4)!�� ��� ��� �
��
���
����� ����������Friday, March 25,
정수형
7
Friday, March 25,
정수형의 종류
8
6.2 ��� (1/10)
!��� ��! char(1���), short(2���), int(4���), long(4���)
! ���� �� ��� ��� ��
��� � �� ��� �� ��char 1���(8 �) -128 ~ +127short 2���(16 �) -32768 ~ +32767
int 4���(32 �) -2147483648 ~ +2147483647long 4���(32 �) -2147483648 ~ +2147483647
����������������
Friday, March 25,
정수형 데이터 관련 라이브러리
9
6.2 ��� (2/10)
!��� ��� �� �� ���� ��� ����! limits.h : ��� ��� �� ���(MIN)� ���(MAX) � ��
��� �(���) �(���)
char CHAR_MIX CHAR_MAXshort SHRT_MIX SHRT_MAX
int INT_MIX INT_MAXlong LONG_MIX LONG_MAX
��� �� �� ��� �� ��char 1��(8��) -128 ~ +127short 2��(16��) -32768 ~ +32767
int 4��(32��) -2147483648 ~ +2147483647long 4��(32��) -2147483648 ~ +2147483647
����������������
Friday, March 25,
6-2.c 실습
10
6.2 ��� (3/10)---[6-2.c ��]#include <stdio.h>#include <limits.h> // � �� ���(MIN), ���(MAX) � ��int main(void){ printf(“ char� ��� %d, ��� %d \n", CHAR_MIN, CHAR_MAX); printf("short� ��� %d, ��� %d \n", SHRT_MIN, SHRT_MAX); printf(“ int� ��� %d, ��� %d \n", INT_MIN, INT_MAX); printf(“ long� ��� %d, ��� %d \n", LONG_MIN, LONG_MAX); return 0;}
� � ��� �� ��� �� �char 1���(8�) -128 ~ +127short 2���(16�) -32768 ~ +32767
int 4���(32�) -2147483648 ~ +2147483647long 4���(32�) -2147483648 ~ +2147483647
����� ����������
실행결과char의 최소값 -128, 최댓값 127short의 최소값 -32768, 최댓값 32767int의 최소값 -2147483648, 최댓값 2147483647long의 최소값 -2147483648, 최댓값 2147483647
Friday, March 25,
unsigned 자료형(1/3)
11
6.2 ��� (4/10)
! ‘���� �� � � � ��� unsigned ���� ��.’! unsigned: 0� ���� ��
��� ��� �� ��� �� char (signed char)
unsigned char1���(8�)1���(8�)
-128 ~ +1270 ~ (127 + 128)
short (signed short)unsigned short
2���(16�)2���(16�)
-32768 ~ +327670 ~ (32767 + 32768)
int (signed int)unsigned int
4���(32�)4���(32�)
-2147483648 ~ + 21474836470 ~ (2147483647 + 2147483648)
long (signed long)unsigned long
4���(32�)4���(32�)
-2147483648 ~ + 21474836470 ~ (2147483647 + 2147483648)
����������������
Friday, March 25,
unsigned 자료형(2/3)
12
6.2 ��� (5/10)---[6-3.c ��]
#include <stdio.h>int main(void){ signed char num1=130; // -128 ~ 127� �� �� �� unsigned char num2=130; // 0 ~ 255� �� �� �� printf("%d \n", num1); // -126 � printf("%u \n", num2); // 130 � return 0;}
����� ����������
실행결과-126130
6-3.c 실습
Friday, March 25,
unsigned 자료형(3/3)
13
6.2 ��� (6/10)
unsigned �� � � �� ��
unsigned char 0 ~ (127 + 128)
unsigned short 0 ~ (32767 + 32768)
unsigned int 0 ~ (2147483647 + 2147483648)
unsigned long 0 ~ (2147483647 + 2147483648)
! limits.h � ���� unsigned� �� ���(MAX)
unsigned �� �(���)
unsigned char UCHAR_MAXunsigned short USHRT_MAX
unsigned int UINT_MAXunsigned long ULONG_MAX
����������������
Friday, March 25,
정수형은 int형을 선호한다
14
6.2 ��� (7/10)! ‘$�/� int/ �0.�.’
! char/ ��� int/ ��! %"
! CPU� int/ �# ��� &�-� "�• � ���! (,)� 32�+ "�! ��*• CPU� ��-� �� ��� '� 32�+
����������������
Friday, March 25,
정수형의 오버플로우/언더플로우
15
6.2 ��� (8/10)! ‘��%� �"��� ��"��� �&� �� �#�.’
! ‘�"��’ : �%� ��$ � �� �� ���� ! � ��
! ‘��"��’ : �%� ��$ � �� � ���� �� � ��
����������������
Friday, March 25,
정수형의 오버플로우/언더플로우
16
6.2 ��� (9/10)---[6-4.c ��]#include <stdio.h>int main(void){ char num1=-129; // ��(-128)� -1�� �� � ��( ����) char num2=128; // ���(127)� +1�� � � ��(�����) printf("%d \n", num1); // 127 �� printf("%d \n", num2); // -128�� num1=-130; // ��(-128)� -2�� �� � ��( ����) num2=129; // ���(127)� +2�� � � ��(�����) printf("%d \n", num1); // 126 �� printf("%d \n", num2); // -127�� return 0;}
����������������
6-4.c 실습
Friday, March 25,
정수형의 오버플로우/언더플로우
17
6.2 ��� (10/10) ---[6-4.c ]
char num1=-129; // ����� -1�� �� � ��(�����)char num2=128; // ����� +1�� � � ��( ����)
num1=-130; // ���(-128)�� -2�� �� � ��(�����)num2=129; // ���(127)�� +2�� � � ��( ����)
����������������
6-4.c 실습
Friday, March 25,
Top Related