º¯¼ö³ª »ó¼ö¸¦ »ç¿ëÇÒ ¶§¿¡´Â »çÀü¿¡ º¯¼ö¿Í »ó¼öÀÇ ÇüÅÂ, ¹üÀ§, ºÎÈ£ À¯¹« µîÀ»
°í·ÁÇØ¾ß ÇÑ´Ù. À̵éÀº º¯¼ö¿Í »ó¼öÀÇ ÀÚ·áÇü(Data Type)¿¡ ÀÇÇØ °áÁ¤µÈ´Ù.
ºñ´Ü º¯¼ö, »ó¼öÀÇ °æ¿ì»Ó¸¸ ¾Æ´Ï¶ó ÇÔ¼ö, ¿¬»ê½ÄÀÇ °æ¿ì¿¡µµ ÀÚ·áÇüÀ» °¨¾ÈÇØ¾ß
Çϴµ¥, º¯¼ö¿Í »ó¼öÀÇ ÀÚ·áÇü¿¡ Àͼ÷ÇØ Áö¸é ÇÔ¼ö, ¿¬»ê½ÄÀÇ ÀÚ·áÇü¿¡µµ ÀÚµ¿ÀûÀ¸·Î
Àͼ÷ÇØÁø´Ù
ÀÚ·áÇü °³¿ä | ºÎÈ£Á¤¼öÇü
|
ºñºÎÈ£Á¤¼öÇü | ¹®ÀÚ ÀÚ·áÀÇ Ã³¸®
|
½Ç¼öÇü
ÀÚ·áÇü
°³¿ä
(1) ÀÚ·áÇüÀ̶õ?
¸» ±×´ë·Î ÀÚ·áÀÇ ÇüŸ¦ ¸»Çϸç, º¯¼ö. »ó¼öÀÇ ´ÙÀ½ »çÇ×Àº ÀÚ·áÇü¿¡ ÀÇÇØ °áÁ¤µÈ´Ù.
ÇüÅ : Á¤¼öÀΰ¡ ¼Ò¼öÁ¡¼ö(½Ç¼ö)Àΰ¡ ...?
¹üÀ§ : -32768~32767 »çÀÌÀΰ¡, 32768 ÀÌ»óµµ
»ç¿ëµÇ´Â°¡ ...?
ºÎÈ£ : À½¼öµµ »ç¿ëµÇ´Â°¡ ¾Æ´Ï¸é ¾ç¼ö¸¸ »ç¿ëµÇ´Â°¡?
À§ÀÇ »çÇ×À» °í·ÁÇÏÁö ¾Ê°í º¯¼ö³ª »ó¼ö(ƯÈ÷ º¯¼ö)¸¦ »ç¿ëÇϸé ÇÁ·Î±×·¥ ½ÇÇàÀÌ
¾û¶×ÇÏ°Ô µÇ¾î ¹ö¸®±âµµ ÇÑ´Ù. ´ÙÀ½ ÇÁ·Î±×·¥À» º¸±â ¹Ù¶õ´Ù. ÀÌ´Â n=123
ÀÌÈÄ 10°³ÀÇ Á¤¼ö habÀ» ±¸ÇϰíÀÚ ÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù.
#include <stdio.h>
void main()
{
char n;
int i, hab=0;
n=123;
for (i=1; i<=10; i++)
{
printf("%d", n);
hab += n++;
}
printf("¡¬n¡¬nhab : %d", hab);
}
123 ÀÌÈÄÀÇ 10°³ÀÇ Á¤¼ö(123~132)ÀÇ ÇÕÀº 1275Àε¥ ÀüÇô ¾û¶×ÇÑ °ªÀÎ -5°¡ Ç¥½ÃµÇ¾î
ÀÖÀ» °ÍÀÌ´Ù(ÇÕÀº ±¸ÇÏ´Â for ·çÇÁ¿¡´Â ¾Æ¹«·± ¹®Á¦°¡ ¾ø´Ù). ÀÌ´Â char ÇüÀÇ
°æ¿ì¿¡´Â -128~127 »çÀÌÀÇ °ª¸¸ °¡Áú ¼ö Àִµ¥ À§ ÇÁ·Î±×·¥¿¡¼´Â 127À» ÃʰúÇÏ´Â
°ªÀ» »ç¿ëÇÏ·Á Çϰí Àֱ⠶§¹®ÀÌ´Ù. À§ ÇÁ·Î±×·¥ÀÇ ½ÇÇà °á°ú¿¡¼ È®ÀÎÇÒ ¼ö
ÀÖµíÀÌ charÇüÀÇ °æ¿ì n=127ÀÏ ¶§ nÀ» 1Áõ°¡½Ã۸é(n++) n=-128·Î µÈ´Ù.
¡ºchar n;¡»À»¡ºunsigned char n:¡»À¸·Î ¹Ù²Ù¸é 123~132ÀÇ habÀÌ Á¤È®È÷ ±¸ÇØÁø´Ù.
ÇÁ·Î±×·¥ÁßÀÇ ¹®¹ýÀûÀÎ ¿À·ù´Â ¿ëÀÌÇÏ°Ô ¹ß°ßµÇ³ª, ÇÁ·Î±×·¥ÀÌ ±ä °æ¿ì¿¡´Â ÀÌ¿Í
°°Àº ¿À·ù´Â ½±°Ô ¹ß°ßµÇÁö ¾Ê´Â´Ù. µû¶ó¼ ÀÚ·á(º¯¼ö)¸¦ »ç¿ëÇÏ·Á¸é »çÀü¿¡
º¯¼öÀÇ ¹üÀ§¿Í ºÎÈ£À¯¹«, ÇüŸ¦ °¨¾ÈÇÏ¿© ÀÚ·áÇüÀ» Á¤È®È÷ ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ÀÚ·áÀÇ ¹üÀ§, ºÎÈ£À¯¹«, ÇüÅ´ ÀÚ·áÇü¿¡ ÀÇÇØ °áÁ¤µÈ´Ù.
(2) ÀÚ·áÇüÀÇ Á¾·ù
±¸ºÐ |
ÀÚ·áÇü |
¹üÀ§ |
¹ÙÀÌÆ® |
ºÎÈ£ |
Á¤¼öÇü |
char |
-128~127(-27~27-1) |
1(8) |
À¯ |
int |
-32768~32767(-215~215-1) |
2(16) |
||
½Ç¼öÇü |
float |
8.4 X 10-37~3.4
X 1038 |
4(32) |
À¯ |
±âŸ |
void |
½ÇÁ¦ ÀÚ·á´Â ¾øÀ½À» ¸í½ÃÀûÀ¸·Î ¼±¾ð |
||
ÇÔ¼öÀÇ °æ¿ì¿¡´Â ÇÔ¼ö°ªÀÌ ¾øÀ½À» ¸í½ÃÀûÀ¸·Î ¼±¾ð. ´Ü¡ºvoid *¡»´Â ÇÔ¼ö°ªÀÌ Æ÷ÀÎÅÍÇüÀÓÀ» ¼±¾ð |
||||
À§ Ç¥ÀÇ ÀÚ·áÇüÀº ±âº» ÀÚ·áÇüÀ̸ç, ÀÌ À̿ܿ¡µµ ¹è¿, Æ÷ÀÎÅÍ, ±¸Á¶Ã¼,
°ø¿ëüµîÀÇ ÀÚ·áÇüÀÌ ÀÖ´Ù. À̵éÀº À§ÀÇ ±âº» ÀÚ·áÇü¿¡ ÀǰÅÇÏ¿© ¸¸µé¾îÁö´Âµ¥ À̵鿡
´ëÇØ¼´Â ÈÄ¿¡ Â÷Â÷ ¼³¸íÇÑ´Ù.
ºÎÈ£Á¤¼öÇü(char, int, long)
º¯¼ö°¡ À½¼ö¿Í ¾ç¼ö ¸ðµÎ¸¦ ÃëÇÒ ¶§¿¡´Â ´ÙÀ½ÀÇ ÀÚ·áÇüÀ» »ç¿ëÇÑ´Ù.
ÀÚ·áÇü |
¹ÙÀÌÆ®¼ö |
10Áø ¹üÀ§ |
16Áø ¹üÀ§ |
char |
1(8ºñÆ®) |
-128~127 |
0~0xFF |
À§ ÀÚ·áÇüÀº °¢°¢¡º-2ºñÆ®¼ö-1~2ºñÆ®¼ö-1 -1¡» (ºñÆ®¼ö´Â 8, 16, 32)
»çÀÌÀÇ Á¤¼ö°ª¸¸À» Çã¿ëÇÑ´Ù. À̸¦ 10Áø ¹üÀ§·Î Ç¥½ÃÇϸé À§ Ç¥¿Í °°Àºµ¥ char¿Í
intÀÇ 10Áø ¹üÀ§´Â ¿Ü¿öµÑ Çʿ䰡 ÀÖ´Ù. longÇüÀÇ ¹üÀ§´Â¡º¾à -21¾ï~21¾ï¡»À¸·Î
¿Ü¿ì´Â °ÍÀÌ ÁÁÀ» °ÍÀÌ´Ù.
¿¹¸¦ µé¾î charÇüÀÇ °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ ¼öÄ¡°¡ Áõ°¡ÇÑ´Ù.
0 1 2 ... 126 127 -128 -127 ... -1
0 1
-128˼ 127+1˼ -128
´ÙÀ½¿¡ char, intÇüÀÇ ÇÁ·Î±×·¥¿¹¸¦ Ç¥½ÃÇÏ¿´´Ù.
#include <stdio.h>
void main()
{
char ch=125;
int in=32765, i;
for (i=1; i<=7; i++)
printf("%8d", ch++);
printf("¡¬n");
for (i=1; i<=7; i++)
printf("%8d", in++);
}
char, int, short, long ÇüÀº ¾ç¼ö¿Í À½¼ö¸¦ ¸ðµÎ Çã¿ëÇϹǷΡººÎÈ£ ¼öÄ¡(Signed
Number)ÀÇ ÀÚ·áÇü¡»À̶ó ÇÑ´Ù.
Âü°í signed(ºÎÈ£ÇüÀÓÀ» ¸í½Ã)
´ÙÀ½Àº ¼·Î µ¿ÀÏÇÏ´Ù.
char == signed char
int == signed int == signed
long == signed long
ºñºÎÈ£
Á¤¼öÇü(unsigned char,
int, long)
º¯¼ö°¡ ¾ç¼ö°ª¸¸À» ÃëÇÒ ¶§¿¡´Â ´ÙÀ½ÀÇ ÀÚ·áÇüÀ» »ç¿ëÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
ÀÚ·áÇü |
¹ÙÀÌÆ®¼ö |
10Áø ¹üÀ§ |
16Áø ¹üÀ§ |
unsigned char |
1(8ºñÆ®) |
0~255 |
0~0xFF |
À§ ÀÚ·áÇüÀº °¢°¢¡º0~2ºñÆ®¼ö-1¡»»çÀÌÀÇ Á¤¼ö°ª¸¸À» Çã¿ëÇÑ´Ù. À̸¦ 10Áø ¹üÀ§·Î
Ç¥½ÃÇϸé À§ Ç¥¿Í °°Àºµ¥ unsigned char¿Í unsigned intÀÇ 10Áø ¹üÀ§´Â ¿Ü¿öµÑ Çʿ䰡
ÀÖ´Ù. unsigned longÇüÀÇ ¹üÀ§´Â 0~¾à 42¾ïÀ¸·Î ¿Ü¿öµÎ´Â °ÍÀÌ ÁÁ´Ù.
¿¹¸¦ µé¾î unsigned char ÇüÀÇ °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ ¼öÄ¡°¡ Áõ°¡ÇÑ´Ù.
0 1 2 ... 254 255 0 1
2 ...
255´Â 255+1Àº 0
´ÙÀ½¿¡ unsigned char, unsigned intÇüÀÇ ÇÁ·Î±×·¥¿¹¸¦ Ç¥½ÃÇÏ¿´´Ù.
#include <stdio.h>
void main()
{
unsigned char uc=253;
unsigned int ui=65523, i;
for (i=1; i<=7; i++)
printf("%8u", uc++);
printf("¡¬n");
for (i=1; i<=7; i++)
printf("%8u", ui++);
}
¡á %u
unsignedÇüÀÇ ÀڷḦ printf() ÇÔ¼ö·Î Ãâ·ÂÇÒ ¶§¿¡´Â %u, %lu¸¦ »ç¿ëÇÑ´Ù(%d, %ldµµ
¹°·Ð »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª Ãâ·Â ¹üÀ§¿¡ Á¦ÇÑÀ» ¹Þ´Â´Ù.)
%uÀÇ
Ãâ·Â ¹üÀ§ : 0~65535(unsigned
intÇüÀÇ ¹üÀ§)
%luÀÇ
Ãâ·Â ¹üÀ§ : 0~¾à 42¾ï(unsigned longÇüÀÇ ¹üÀ§)
Ãâ·Â ¹üÀ§¸¦ Á¦¿ÜÇϰí´Â %u´Â %d¿Í %lu´Â %ld¿Í µ¿ÀÏÇÏ´Ù
¹®ÀÚ
ÀÚ·áÀÇ Ã³¸®
Æ÷Æ®¶õ, º£ÀÌÁ÷ µîÀÇ ¾ð¾î¿¡´Â ¹®ÀÚÇüÀÌ Á¸ÀçÇϳª C¾ð¾î¿¡´Â ¹®ÀÚÇüÀº Á¸ÀçÇÏÁö ¾Ê´Â´Ù.
C¿¡¼´Â ¹®ÀÚ´Â ³»ºÎÀûÀ¸·Î ¹®ÀÚÀÇ ¾Ö½ºÅ° Äڵ尡
Á¤¼öÀÇ ÇüÅ·Π»ç¿ëµÇ¸ç, ÀÚ·á Ç¥½Ã½Ã %c°¡ ¾Æ´Ñ %¹®ÀÚ(%d,
%o, %x, %u)¸¦ ÁöÁ¤ÇÏ¸é ¹®ÀÚÀÇ ¾Ö½ºÅ° Äڵ尡 Ç¥½ÃµÈ´Ù. ¹Ý´ë·Î 0~255 »çÀÌÀÇ
intÇü Á¤¼ö¸¦ %¹®ÀÚ %c¸¦ »ç¿ëÇÏ¿© Ç¥½Ã½ÃŰ¸é ¾Ö½ºÅ° Äڵ尡 ÇØ´ç¡ºÁ¤¼ö¡»ÀÎ ¾Ö½ºÅ°
¹®ÀÚ°¡ Ç¥½ÃµÈ´Ù. Áï ¹®ÀÚ´Â 0~255 »çÀÌÀÇ Á¤¼ö¿Í ȣȯ¼ºÀ» °®´Â´Ù. ´ÙÀ½¿¡
°£´ÜÇÑ ÇÁ·Î±×·¥ ¿¹¸¦ Ç¥½ÃÇÏ¿´´Ù.
#include <stdio.h>
void main()
{
char ch;
int in;
ch = in = 'A';
printf("ch = %d¡¬n", ch);
printf("int = %d¡¬n", in);
ch = int = 100;
printf("¡¬nch : %c¡¬n", ch);
printf("in : %c¡¬n", in);
}
¹®ÀÚ´Â ³»ºÎÀûÀ¸·Î ¾Ö½ºÅ° ÄÚµå·Î 󸮵ǰí, ¾Ö½ºÅ° ÄÚµå´Â 0~255 »çÀÌÀ̹ǷΠ¹®ÀÚ
ÀÚ·á ó¸®¿ë º¯¼ö´Â unsigned char·Î ÇÏ´Â °ÍÀÌ ¹«³ÇÏ´Ù. ÀÌ¿Í °°Àº ÀÌÀ¯·Î
char(character)¶õ À̸§ÀÌ ºÙ¿©Áø °ÍÀÌ´Ù.
½Ç¼öÇü
¼ö¼öÁ¡ÀÌ ÀÖ´Â ¼ö°¡ ½Ç¼ö(Floating Point Number : ºÎµ¿¼Ò¼öÁ¡¼ö)ÀÌ´Ù. ´ÙÀ½¿¡ ½Ç¼öÀÇ ¿¹¸¦ Ç¥½ÃÇÏ¿´´Ù.
3.14 : ¼Ò¼öÁ¡ÀÌ ÀÖ´Â ¼ö´Â ¸ðµÎ ½Ç¼ö(double
Çü)
3. : ¼ýÀÚ
µÚ¿¡ ¼Ò¼öÁ¡¸¸ Âï¾îµµ µÈ´Ù(double Çü)
3.14E5 : ¼ýÀÚ µÚ¿¡ E¸¦ ÀûÀ¸¸é doubleÇü ½Ç¼ö(=3.14 X
105)
3.14e-5f : floatÇü ½Ç¼öÀÇ Áö¼ö Ç¥Çö(=3.14 X 10-5)
¼Ò¼öÁ¡ÀÌ ÀÖ´Â ¼öÄ¡ ÀڷḦ »ç¿ëÇÏ·Á¸é ÀÚ·áÇüÀ» ´ÙÀ½
Áß ¾î´À Çϳª·Î ¼±¾ðÇØÁÖ¾î¾ß ÇÑ´Ù(floatÇü ¹üÀ§ÀÎ -21¾ï~21¾ïÀ» ¹þ¾î³ª´Â Á¤¼ö¸¦
ó¸®ÇÒ ¶§¿¡µµ ¸¶Âù°¡ÁöÀÌ´Ù).
ÀÚ·áÇü |
¹ÙÀÌÆ®¼ö |
ÃÖ´ë Á¤¹Ðµµ |
À¯È¿¹üÀ§(Àý´ë°ª) |
float |
4 |
10Áø¼ö·Î 7ÀÚ¸® |
8.4X10-37~3.4X1038 |
float, double, long doubleÀº À½¼ö¿Í ¾ç¼ö ¸ðµÎ Çã¿ëÇÑ´Ù. Áï ½Ç¼öÇüÀº ¸ðµÎ
ºÎÈ£ ¼öÄ¡ÀÌ´Ù.
floatÇüÀÇ Á¤¹Ðµµ´Â 10Áø¼ö·Î ÃÖ´ë 7ÀÚ¸®±îÁöÀ̰í, doubleÇüÀº ÃÖ´ë 15ÀÚ¸®±îÁöÀ̸ç,
long doubleÇüÀº ÃÖ´ë 19ÀÚ¸®±îÁöÀÌ´Ù. Áï doubleÀº floatÇüº¸´Ù ½Ç¼ö¸¦
º¸´Ù Á¤¹Ð(Á¤È®)ÇÏ°Ô Ã³¸®ÇØ ³¾ ¼ö ÀÖ´Ù.
´ÙÀ½¿¡ ÇÁ·Î±×·¥ ¿¹¸¦ Ç¥½ÃÇÏ¿´´Ù.
#include <stdio.h>
void main()
{
int i=0, n;
float f=0.0;
double = d=0.0;
for (n=1; n<=10000; n++)
I += 100000, f += 100000, d
+= 100000;
printf("¡¬nint : %11.5f", i/100000.0);
printf("¡¬nfloat : %11.5f", f/100000.0);
printf("¡¬ndouble : %11.5f", d/100000.0);
}
À§ ÇÁ·Î±×·¥Àº º¯¼ö i, f, d¿¡ 10¸¸À» ¸¸¹ø ´õÇÑÈÄ ±× °á°ú¸¦ 10¸¸À¸·Î ³ª´©¾î Ç¥½ÃÇÑ´Ù.
½ÇÇà °á°ú¸¦ º¸¸é doubleÇüÀº °á°ú°¡ 100% Á¤È®Çϰí floatÇüÀº ¾à°£ÀÇ ¿ÀÂ÷¸¦
¼ö¹ÝÇÑ´Ù. µû¶ó¼ Á¤¹ÐÇÑ °è»êÀ» ¿ä±¸ÇÏ´Â °æ¿ì¿¡´Â doubleÇüÀ» »ç¿ëÇÏ´Â °ÍÀÌ
¹Ù¶÷Á÷ÇÏ´Ù.
¡¡ |
Copyright 2000.8 CandCplus khi1000 |
|