4. ¿¬»êÀÚ¿Í ¼ö½Ä

4-1. ÇÁ·Î±×·¥ ¸Àº¸±â 2

#include <conio.h>
#include <stdio.h>

void main() 
{
	int i,j; 
	clrscr(); 

	printf("Input Two numbers :"); 
	scanf("%d %d", &i, &j); 
	printf("\ni==%d, j==%d\n\n", i, j); 

	printf("i+j==%d\n", i+j);                            /* a line */ 
	printf("i-j==%d\n", i-j);                            /* b line */ 
	printf("i*j==%d\n", i*j);                            /* c line */ 
	printf("i/j==%f\n", (float)i/(float)j);            /* d line */ 
	printf("i/j==%d\n", i/j);                            /* d-1 line */

 	if (i>j) printf("i>j\n"); 				/* e line */ 
	else if (i<j) printf("i<j\n"); 				/* f line */ 
	else printf("i==j\n"); 					/* g line */ 

	(i>j) ? printf("i>j\n") : ((i<j) ? printf("i<j\n") : printf("i==j\n"));   /* h line */ 
} 
(°á°ú)=>Input two numbers : 15 4
             i==15, j==4
             i+j==19
             i-j==11
             i*j==60
             i/j==3.750000
             i/j==3
             i>j
             i>j

¡¡

4-2. ¿¬»êÀÚ

C ÀÇ ¿¬»êÀÚ´Â Å©°Ô ³ª´©¾î »ê¼ú ¿¬»êÀÚ, °ü°è ¿¬»êÀÚ, »óµî¿¬»êÀÚ, ³í¸® ¿¬»êÀÚ·Î ³ª´¶´Ù. ÇÁ·Î±×·¥ ¸Àº¸±â 2¿¡¼­ a, b, c, d, d-1 lineÀº µ¡¼À, »¬¼À, °ö¼À, ³ª´°¼ÀÀ» ³ªÅ¸³½ °ÍÀÌ´Ù.

¿¬»êÀÚ Á¾·ù

¼øÀ§

¿¬»êÀÚµé (Operators)

°áÇÕ ¼ø¼­

»ê¼ú ¿¬»êÀÚ

1

2

3

+(¾çÀÇ ºÎÈ£)   -(À½ÀÇ ºÎÈ£)   ++   -- 
*   /   % 
+   -

<----

---->

---->

°ü°è ¿¬»êÀÚ

4

<    <=    >    >=

---->

»óµî ¿¬»êÀÚ

5

==    !=

---->

³í¸® ¿¬»êÀÚ

6

&&    ||

---->

* °áÇÕ¼ø¼­ : °°Àº ¿ì¼±¼øÀ§¸¦ °¡Áø ¿¬»êÀÚµéÀÌ °è»êÀ» ÇÒ ¶§ÀÇ ¹æÇâ(direction)À» ¸»ÇÑ´Ù.

¡¡

a) »ê¼ú ¿¬»êÀÚ

* »çÄ¢ ¿¬»êÀÚ : µ¡¼À(+), »¬¼À(-), °ö¼À(*), ³ª´°¼À(/)

¡¡

* ³ª¸ÓÁö ¿¬»êÀÚ : ³ª¸ÓÁö ¿¬»êÀÚ(%)

- µÎ °³ÀÇ Á¤¼öÇüÀÇ ³ª´°¼À¿¡¼­ ³ª¸ÓÁö¸¦ ±¸ÇÏ´Â ¿¬»êÀÚ

¡¡

* ºÎÈ£ ¿¬»êÀÚ : ¾ç¼ö ¿¬»êÀÚ(+), À½¼ö ¿¬»êÀÚ(-)

- ÇÇ¿¬»êÀÚ(Operand) ÇÑ °³¿¡ Àû¿ëµÇ¾î ºÎÈ£¸¦ ¹Ù²Ù¾î ÁØ´Ù.

¡¡

* Áõ°¨ ¿¬»êÀÚ : Áõ°¡ ¿¬»êÀÚ(++), °¨¼Ò ¿¬»êÀÚ(--)

- ÇÇ¿¬»êÀÚ¸¦ Çϳª¸¸ ÃëÇÏ´Â ´ÜÇ× ¿¬»êÀÚÀ̸ç, ÇÇ¿¬»êÀÚÀÇ °ªÀ» Çϳª Áõ°¡½ÃŰ°Å³ª °¨¼Ò½ÃŲ´Ù.

¿¬»êÀÚ°¡ ºÙ´Â À§Ä¡¿¡ µû¶ó º¯¼ö ¾Õ¿¡ ºÙÀ¸¸é ÀüÀ§Çü, µÚ¿¡ ºÙÀ¸¸é ÈÄÀ§ÇüÀ̶ó ÇÑ´Ù.

<ÀüÀ§Çü(prefix)>

a = 10;

b = ++a;

ÀÇ¹Ì : ¸ÕÀú a¸¦ Áõ°¡ => b¿¡ ´ëÀÔ

°á°ú : a == 11, b == 11

<ÈÄÀ§Çü(postfix)>

a = 10;

b = a++;

ÀÇ¹Ì : ¸ÕÀú a¸¦ b¿¡ ´ëÀÔ => aÁõ°¡

°á°ú : a == 11, b == 10

¡¡

b) °ü°è ¿¬»êÀÚ

°ü°è ¿¬»êÀÚ¿¡´Â À§ÀÇ Ç¥¿¡ ³ª¿Â °Íó·³ 4°¡Áö°¡ ÀÖ°í, ÇÇ¿¬»êÀÚ·Î ¼ö½Ä(expression)À» ÃëÇϸç Á¤¼öÇü °ªÀÎ 0À̳ª 1À» °¡Áø´Ù. °¡·É a<b ÀÎ ¼ö½ÄÀ» ¿¹·Î µé¾îº¸ÀÚ. ¸¸¾à a<b °¡ Âü(true)ÀÌ¸é ¼ö½ÄÀº 1ÀÇ °ªÀ» °¡Áö¸ç, °ÅÁþ(false) À̸é 0ÀÇ Á¤¼ö°ªÀ» °¡Áø´Ù. (e, f line ÂüÁ¶)

¡¡

c) »óµî ¿¬»êÀÚ

»óµî ¿¬»êÀÚµµ µÎ °³ÀÇ ¼ö½Ä¿¡¼­ ÀÛ¿ëÀ» Çϸç 0À̳ª 1ÀÇ °ªÀ» ¸¸µå´Â ÀÌÇ×(binary) ¿¬»êÀÚÀÌ´Ù. a == b ¶ó´Â ¿¹¿¡¼­ ¼ö½Ä a¿Í b°¡ ¼­·Î °°À¸¸é Âü(1ÀÇ °ª)ÀÌ µÇ°í, ´Ù¸£¸é °ÅÁþ(0ÀÇ °ª)ÀÌ µÈ´Ù. a != b ´Â ¼ö½Ä a¿Í b°¡ ¼­·Î ´Ù¸£¸é ÂüÀÌ µÈ´Ù.

* Âü°í·Î ´ÙÀ½ µÎ ½ÄÀº ¼­·Î µ¿ÀÏÇÏ´Ù.

a != b <=> !(a == b)

¡¡

d) ³í¸® ¿¬»êÀÚ

* ³í¸® ºÎÁ¤ (!) - NOT

- ¼ö½ÄÀÌ 0ÀÇ °ªÀ» °¡Áö°í ÀÖÀ» ¶§, ³í¸® ºÎÁ¤À» ½Ã۸é 1ÀÌ µÇ°í, ¹Ý´ë·Î 0ÀÌ ¾Æ´Ñ °ªÀ» °¡Áö

°í ÀÖÀ» ¶§, ÀÌ ¿¬»êÀÚ¸¦ »ç¿ëÇϸé 0ÀÌ µÈ´Ù.

¡¡

* ³í¸® °ö(&&) - AND

¡¡

* ³í¸® ÇÕ(||) - OR

* C¿¡´Â ³í¸® XOR ¿¬»êÀÚ°¡ ¾ø´Ù. ±×·¸Áö¸¸ ºñÆ® XOR ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¸é °£´ÜÇÏ°Ô ³í¸® XOR ¿¬»êÀÚ¸¦ ±¸ÇöÇÒ ¼ö°¡ ÀÖ´Ù. ¸¸¾à ¼ö½Ä op1°ú op2°¡ 0°ú 1¸¸ÀÇ °ªÀ» °¡Áø´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÏ ¸é µÈ´Ù.

if ((op1)^(op2)) ......

¸¸¾à op1°ú op2°¡ 0°ú 1 ÀÌ¿ÜÀÇ °ªÀ» °¡ÁúÁöµµ ¸ð¸¥´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

if ((op1)!=0 ^ (op2)!=0) .......

¡¡

* short circuit ±â´É

- C¿¡¼­ ³í¸®½ÄÀº °áÇÕ¼ø¼­·Î º¸¾Æ¼­ ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î(--->) Æò°¡µÈ´Ù. ÀÌ ¶§ && ¿¬»êÀÚ Áº¯ÀÇ ¼ö½ÄÀÌ ³í¸®ÀûÀ¸·Î ÀÌ¹Ì °ÅÁþÀ» °æ¿ì¿¡´Â ¿ìº¯À» ¾Æ¿¹ Æò°¡ÇÏÁö ¾Ê´Â´Ù. ¶ÇÇÑ, || ¿¬»êÀÚ Áº¯ÀÇ ¼ö½ÄÀÌ ³í¸®ÀûÀ¸·Î ÂüÀÏ °æ¿ì¿¡µµ ¿ìº¯ÀÇ ¼ö½ÄÀ» Æò°¡ÇÏÁö ¾Ê´Â´Ù.

¡¡

e) ´ëÀÔ ¿¬»êÀÚ

* ´ëÀÔ ¿¬»êÀÚ(=)´Â ¿ìº¯ÀÇ ¼ö½ÄÀÇ °ªÀ» Áº¯ÀÇ º¯¼ö(¶Ç´Â ´ëÀÔ°¡´ÉÇÑ ¸ðµç °Í)¿¡ ´ëÀÔÇÏ´Â ¿¬»êÀÚÀÌ´Ù. °áÇÕ¼ø¼­´Â <--- ÀÌ´Ù.

   first = 0; 
   second = 0;  
   third = 0;
   <=>   
   third = second = first = 0;   
   a = 0; 
   b = a+1;
   c = b+2;        
    <=>    
   c = (b = (a = 0) + 1) + 2;        

* C¿¡´Â op= °ú °°Àº ÇüÅÂÀÇ ´ëÀÔ ¿¬»êÀÚ°¡ Àִµ¥, op °¡ µÉ ¼ö ÀÖ´Â ¿¬»êÀÚ´Â ¾Æ·¡¿Í °°ÀÌ »ê¼ú ¿¬»êÀÚ¿Í ºñÆ® ¿¬»êÀÚ(´ÜÇ× ¿¬»êÀÚ ~¸¸ Á¦¿Ü) 10°³ÀÌ´Ù.

+    -    *    /    %    <<    >>    &    ^    | 
a = a + 2;                         a += 2; 
test = test / 3;      <=>      test /= 3; 
j= j % 8;                           j %= 8; 

¡¡

f) ij½ºÆ® ¿¬»êÀÚ

d line°ú d-1 lineÀ» ºñ±³ÇØ º¸ÀÚ. i, j ´Â ¸ðµÎ Á¤¼öÇüÀÌ´Ù. C´Â Á¤¼ö³¢¸® ³ª´°¼ÀÀ» ÇÏ¿© ³ª¸ÓÁö°¡ »ý±â´õ¶óµµ ½Ç¼ö°¡ µÇÁö¾Ê°í Á¤¼ö°¡ µÇ¾î¹ö¸°´Ù. ±×°ÍÀº C°¡ ¼Ò¼öÁ¡ ÀÌÇÏ´Â ¹Ý¿Ã¸²ÇÏÁö ¾Ê°í °ú°¨È÷ Àß¶ó¹ö¸®±â ¶§¹®ÀÌ´Ù. µû¶ó¼­,

5. / 4 ´Â 1.25 À̰í, 1. / 2 ´Â .5 À̸ç,

5. / 4 µµ 1.25 À̰í, 1. / 2. µµ .5 ÀÌÁö¸¸,

5 / 4 ´Â 1 À̰í, 1 / 2 ´Â 0 ÀÌ´Ù.

À§ÀÇ ¿¹¸¦ Æ÷ÇÔÇÏ´Â ¸ðµç »çÄ¢¿¬»ê¿¡¼­ ÁÖÀÇÇÒ Á¡Àº ÇÇ¿¬»êÀÚ µÑ Áß¿¡ ¾î´À Çϳª¶óµµ double ÇüÀÌ¸é ´Ù¸¥ ÇϳªÀÇ ÇÇ¿¬»êÀÚ´Â ±× µ¥ÀÌÅÍÇüÀÌ ¹«¾ùÀÌµç °£¿¡ double ÇüÀ¸·Î ÀÚµ¿ º¯È¯µÈ´Ù.

d-1 lineÀº °á°ú°¡ Á¤¼öÇüÀ¸·Î ³ª¿ÔÁö¸¸, d lineÀº º¯¼ö i, j ¸ðµÎ Á¤¼öÇüÀÌÁö¸¸ °á°ú´Â float ÇüÀ¸·Î ³ª¿Ô´Ù. À̰ÍÀº º¯¼ö i, j ¾Õ¿¡ (float)¶ó´Â ij½ºÆ® ¿¬»êÀÚ¸¦ µ¡ºÙ¿´±â ¶§¹®ÀÌ´Ù. ÀÌó·³ óÀ½¿¡ Á¤ÀÇÇÑ µ¥ÀÌÅÍÇü°ú ´Ù¸¥ µ¥ÀÌÅÍÇüÀ¸·Î »ç¿ëÇÒ Çʿ䰡 ÀÖÀ» ¶§ ij½ºÆ® ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÑ´Ù. À̶§ º¯¼ö i¿Í j´Â Àӽ÷ΠÇüº¯È¯ÀÌ ÀϾ °ÍÀ̱⠶§¹®¿¡ º¯¼öÀÇ °ªÀ̳ª Çü ÀÚü´Â º¯ÇÏÁö ¾Ê´Â´Ù. CÀÇ Ä³½ºÆ® ¿¬»êÀÚ´Â ¸ðµç µ¥ÀÌÅÍÇü°£ÀÇ Çüº¯È¯ÀÌ °¡´ÉÇÏ°í ½ÉÁö¾î´Â Æ÷ÀÎÅÍÇü°£ÀÇ Çüº¯È¯µµ °¡´ÉÇÏ´Ù.

g) Á¶°Ç ¿¬»êÀÚ (expr1 ? expr2 : expr3)

             if (a>b) max = a;       <=>       max = (a>b) ? a : b 
             else max = b; 

if-else ¹®Àº Á¦¾î¹®ÀÇ ÀÏÁ¾À̸ç, if ´ÙÀ½ÀÇ Á¶°ÇÀÌ ÂüÀ̸é Á¶°Ç ´ÙÀ½ÀÇ ¹®ÀåÀ» ½ÇÇàÇÏ°í °ÅÁþÀ̸é else ´ÙÀ½ÀÇ ¹®ÀåÀ» ½ÇÇàÇÑ´Ù. else¹®Àº µÚ¿¡ °è¼Ó µ¡ºÙÀÏ ¼ö ÀÖ´Ù.

Á¶°Ç ¿¬»êÀÚ´Â if-else ¹®°ú °°Àº ¿ªÇÒÀ» ÇÏ´Â ¿¬»êÀÚÀ̸ç, ÇÇ¿¬»êÀÚ¸¦ 3°³³ª ÃëÇÑ´Ù. expr1À̶ó´Â Á¶°ÇÀÌ ÂüÀ̸é expr2½ÄÀ» ½ÇÇàÇÏ°í °ÅÁþÀ̸é expr3½ÄÀ» ½ÇÇàÇÑ´Ù.

À§ÀÇ ÇÁ·Î±×·¥ ¸Àº¸±â2 ¿¡¼­µµ e, f, g line°ú h lineÀº °°Àº ½ÄÀ̸ç, À̶§ h lineÀº Á¶°Ç¼ö½ÄÀÌ ÁßøµÇ¾î ÀÖ´Â ÇüÅÂÀÌ´Ù. °¡±ÞÀûÀ̸é Á¶°Ç¼ö½ÄÀ» ÁßøÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁÀºµ¥, ÀÌ´Â ¼ö½ÄÀÌ ÁßøµÇ¾î ÀÖÀ¸¸é °áÇÕ¼ø¼­(¡£--)¿¡ À־ ±× °á°ú¸¦ ¿¹ÃøÇϱⰡ °ï¶õÇØÁö±â ¶§¹®ÀÌ´Ù. À§ÀÇ h line ó·³ °á°ú¸¦ ¿¹ÃøÇϱ⠽±°í °áÇÕ¼ø¼­¿¡ °ü°è¾øÀÌ °°Àº °á°ú°¡ ³ª¿À¸é »ó°ü¾øÁö¸¸, Á¶°Ç¼ö½ÄÀÌ ÁßøµÇ´Â °æ¿ì°¡ ÀÖ´Ù¸é, °ýÈ£°¡ ÇÊ¿ä¾ø´Â °æ¿ì¶óµµ ¾Ë¾Æº¸±â ÆíÇÏ°Ô °ýÈ£¸¦ ÇØÁÖ´Â °ÍÀÌ ÁÁ´Ù. ½ÇÁ¦·Î h lineÀÌ ¾î¶»°Ô Àü°³µÇ´ÂÁö »ìÆìº¸¸é i==15, j==4 ¿´À¸¹Ç·Î

(i>j) ? printf("i>j\n") : (i<j) ? printf("i<j\n") : printf("i==j\n");

(i>j) ? printf("i>j\n") : printf("i==j\n");

°á°ú´Â (i>j) °¡ ÂüÀ̹ǷΠprintf("i>j\n"); °¡ ½ÇÇàµÈ´Ù.

¡¡

h) ½°Ç¥ ¿¬»êÀÚ

½°Ç¥ ¿¬»êÀÚ´Â , ·Î ºÐ¸®µÇ´Â ¼ö½ÄµéÀ» °áÇÕ¼ø¼­¿¡ µû¶ó¼­ °¡Àå ¿ÞÂÊÀÇ ¼ö½ÄºÎÅÍ Â÷·ÊÂ÷·Ê Æò°¡Çϸç, °¡Àå ¿À¸¥ÂÊ ¼ö½ÄÀÇ °ªÀ» ½°Ç¥ ¿¬»ê½ÄÀÇ °á°ú°ªÀ¸·Î ÃëÇÑ´Ù.

void main() 
{ 
	int a, b, c, d; 
	d = ( a=5, b=3, c=4 );              /* °¡Àå ¿À¸¥ÂÊ °ªÀÎ 4°¡ d¿¡ ´ëÀԵȴÙ. */ 
	printf("%d %d %d %d\n", a, b, c, d); 
} 
(°á°ú) =>5 3 4 4 

¡¡

½°Ç¥ ¿¬»êÀÚÀÇ ¿ëµµ´Â ´ë°³ 2°¡Áö·Î ³ª´¶´Ù.

¨ç for ¼øÈ¯¹®ÀÇ ·çÇÁ Á¦¾îº¯¼ö°¡ µÎ °³ ÀÌ»óÀÏ ¶§

¨è µÎ °³ÀÇ ´ëÀÔ½ÄÀ» ÇϳªÀÇ ¼ö½ÄÀ¸·Î ¾ÐÃàÇÏ°í ½ÍÀ» ¶§

¡¡

void main() 	/* ¨è ÀÇ ¿¹ */ 
{ 
	int x, y; 
	x = (y = 0, y + 5); 
	printf("x = %d y = %d\n", x, y); 
} 
(°á°ú) =>x = 5 y = 0 

¡¡

À§ÀÇ ¿¹¿¡¼­ ½°Ç¥ ¿¬»êÀÚ¿¡ ÀÇÇØ ´ëÀÔ½Ä y=0 ÀÌ ¸ÕÀú Æò°¡µÇ°í ,´ÙÀ½¿¡ »ê¼ú½Ä y+5 °¡ Æò°¡µÇ¾î ½°Ç¥ ¿¬»ê½ÄÀº y+5 == 0+5 == 5 ¶ó´Â °ªÀ» °¡Áö°Ô µÈ´Ù.

¡¡

i) bit ¿¬»êÀÚ

* 1ÀÇ º¸¼ö ( ~ )

- ~ ¿¬»êÀÚ´Â ÈçÈ÷ º¸¼ö ¿¬»êÀÚ¶ó°í ºÎ¸¥´Ù. ±×·±µ¥ ¾ö¹ÐÇÏ°Ô º¸¼ö¿¡ ´ëÇØ¼­ À̾߱âÇϸé ÀÏÀÇ º¸¼ö¸¦ ¸»ÇÑ´Ù. 1ÀÇ º¸¼ö¶ó´Â °ÍÀº 2Áø¼ö¿¡¼­ 1Àº 0À¸·Î, 0Àº 1·Î ¹ÝÀü½ÃŰ´Â °ÍÀ» ¸»ÇÑ´Ù.

	¿¹)    int a = 7; =(2Áø¼ö·Î °íÄ¡¸é)=> 00000000 00000111 
	         ~a == 11111111 11111000        /* aÀÇ 1ÀÇ º¸¼ö */ 

* 2ÀÇ º¸¼ö

- ÄÄÇ»ÅÍÀÇ ¿¬»êÀº »ç½Ç 2ÀÇ º¸¼ö¸¦ »ç¿ëÇÑ´Ù. 2ÀÇ º¸¼ö´Â 1ÀÇ º¸¼ö¿¡ 1¸¸ ´õÇÏ¸é µÈ´Ù.

2ÀÇ º¸¼ö¸¦ »ç¿ëÇÏ´Â ÄÄÇ»ÅÍ´Â ÀÌ ¿¬»êÀ» »ç¿ëÇØ¼­ À½¼ö°¡ ¾Æ´Ñ ¼ö¸¦ À½¼ö·Î ¹Ù²Ù´Â ±â´Éµµ ÇÑ´Ù. À§ÀÇ ¿¹¿¡¼­ aÀÇ 2ÀÇ º¸¼ö´Â 11111111 11111001 (== -7 ) ÀÌ µÈ´Ù.

¡¡

* ºñÆ® ³í¸® ¿¬»êÀÚ

- ºñÆ® ¿¬»êÀÚÀÎ & ^ | ´Â ÀÌÁøÇ¥Çö¿¡¼­ »ç¿ëµÈ´Ù. 2°³ÀÇ ÇÇ¿¬»êÀÚ¸¦ ÇÊ¿ä·Î Çϴµ¥, °¢°¢¿¡ ´ëÇÏ¿© ºñÆ®º°·Î ±â´ÉÀ» ÇÑ´Ù.

a

b

a & b

(ºñÆ® AND)

a ^ b

(ºñÆ® XOR)

a | b

(ºñÆ® OR)

0

1

0

1

0

0

1

1

0

0

0

1

0

1

1

0

0

1

1

1

* Á¿ìÃø shift ¿¬»êÀÚ

- shift ¿¬»êÀÚ´Â º¯¼ö¿¡ ÀÖ´Â ¸ðµç ºñÆ®µéÀ» ¿ìÃøÀ̳ª ÁÂÃøÀ¸·Î À̵¿½ÃŲ´Ù. ÀϹÝÀûÀÎ ÇüÅÂÀÇ shift ¿¬»êÀÚÀÇ ¾²ÀÓ»õ´Â ´ÙÀ½°ú °°´Ù.

º¯¼ö >> ¿À¸¥ÂÊÀ¸·Î À̵¿½Ãų º¯¼öÀÇ °³¼ö

º¯¼ö << ¿ÞÂÊÀ¸·Î À̵¿½Ãų º¯¼öÀÇ °³¼ö

ºüÁ®³ª°£ ºñÆ®´Â ¾ø¾îÁö¹Ç·Î, »õ·Î µé¾î¿À´Â ÂÊÀº 0À¸·Î ä¿öÁø´Ù. ÁÖÀÇÇÒ Á¡Àº ºüÁ®³ª°£ ºñ

Æ®°¡ ´Ù½Ã ¹Ý´ëÂÊÀ¸·Î µé¾î¿ÀÁö ¾Ê´Â´Ù´Â Á¡ÀÌ´Ù. ¾Æ·¡ÀÇ Ç¥¿¡¼­ º¸¸é ¿ÞÂÊÀ¸·Î shift ½Ã۸é

2¸¦ °öÇÑ °á°ú°¡ µÇ°í, ¿À¸¥ÂÊÀ¸·Î shift ½Ã۸é 2·Î ³ª´« °á°ú°¡ µÈ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.

char x;

ÀÌÁøÇüÅÂÀÇ x

xÀÇ °ª

x = 7;

x << 1;

x << 3;

x >> 1;

x >> 4;

00000111

00001110

01110000

00111000

00000011

7

14

112

56

3

int a = 1 << 15;

unsigned b = 1 << 15;

a

b

a >> 3

b >> 3

10000000 00000000

10000000 00000000

11110000 00000000

00010000 00000000

shift ¿¬»êÀÚ¸¦ ¾µ¶§ Á¶½ÉÇØ¾ß ÇÒ °ÍÀÌ ÀÖ´Ù. º¯¼öÀÇ Çü¿¡ µû¶ó ¿À¸¥ÂÊ shift ¿¬»êÀÚ°¡ ¿øÇÏ´Â °á°ú¸¦ ¸¸µéÁö ¾Ê´Â °æ¿ì°¡ Àֱ⠶§¹®ÀÌ´Ù. ¼³¸íÇÏÀÚ¸é º¯¼öÀÇ ÇüÀÌ ¾î¶°³Ä¿¡ µû¶ó »çÀκñÆ®ÀÇ À̵¿¿¡ Â÷À̰¡ ÀÖÀ» ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. Áï, unsigned ÇüÀ¸·Î ¼±¾ðµÈ º¯¼öÀÇ »çÀκñÆ®°¡ 1·Î µÇ¾îÀÖÀ» ¶§ ¿À¸¥ÂÊÀ¸·Î shift ½ÃŰ¸é ±×³É È¥ÀÚ À̵¿ÇÏÁö¸¸, int ÇüÀ¸·Î ¼±¾ðµÈ º¯¼ö¿Í °°Àº °æ¿ì´Â °è¼Ó »çÀκñÆ®¸¦ 1·Î À¯ÁöÇϸ鼭 À̵¿À» ½ÃŲ´Ù. ¶Ç ¸¶Âù°¡Áö·Î ºÎÈ£°¡ ÀÖ´Â ÇüÀÇ ¿ÞÂÊ shift ¿¬»êÀÇ °æ¿ì ºÎÈ£°¡ ¹Ù²î´Â ¼öµµ ÀÖ´Ù. ±×·¡¼­ shift ¿¬»êÀÚ´Â °¡±ÞÀû ºÎÈ£¾ø´Â ÇüÀÇ µ¥ÀÌÅÍÇü¿¡¸¸ ¾²µµ·Ï ÇÑ´Ù.

¡¡

j) sizeof ¿¬»êÀÚ

C ¾ð¾î¿¡´Â sizeof ¶ó´Â ´ÜÇ× ¿¬»êÀÚ°¡ À־ ¾î¶² ´ë»ó¹°À» ÁöÁ¤ÇÏ¸é ±×°Í¿¡ ÇÒ´çµÈ ¸Þ¸ð¸® Å©±â¸¦ ¾Ë·ÁÁØ´Ù. ±× ´ë»ó¹°·Î´Â int ³ª float µîÀÇ µ¥ÀÌÅÍÇüÀÌ µÉ ¼öµµ ÀÖ°í, a+b µîÀÇ ¼ö½ÄÀÌ µÉ ¼öµµ ÀÖ´Ù. ÀϹÝÀûÀÎ »ç¿ë¹ýÀº ´ÙÀ½°ú °°´Ù.

sizeof ¼ö½Ä ¶Ç´Â sizeof(µ¥ÀÌÅÍÇü)

µ¥ÀÌÅÍÇüÀÇ Å©±â¸¦ ¾Ë°í ½ÍÀ¸¸é °ýÈ£¸¦ ¹Ýµå½Ã ½á¾ßÇÏÁö¸¸, ¼ö½ÄÀÎ °æ¿ì¿¡´Â °ýÈ£¸¦ ½áµµ µÇ°í ¾È½áµµ µÈ´Ù. Âü°í·Î ÀÌ ¿¬»êÀÚ°¡ ¸®ÅÏÇÏ´Â ÇüÀº unsigned ÇüÀÌ´Ù.

¿¬»ê¼øÀ§

¿¬»êÀÚ

°áÇÕ¼ø¼­

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

    ( )     [ ]     ->     . 
   !    ~    ++    --    -    +    (type)    *    &    sizeof 
    *     /     % 
    +     - 
    <<     >> 
    <     <=     >     >= 
    ==     != 
    & 
    ^ 
    | 
    && 
    || 
    ? : 
    =     op= 
    ,
        --> 
  <-- 
        --> 
        --> 
        --> 
        --> 
        --> 
        --> 
        --> 
        --> 
        --> 
        --> 
  <-- 
  <-- 
        -->

* ¼øÀ§ 1 : ->(±¸Á¶Ã¼ Æ÷ÀÎÅÍ ¿¬»êÀÚ) .(±¸Á¶Ã¼ ¿¬»êÀÚ)

* ¼øÀ§ 2 : ~(1ÀÇ º¸¼ö ¿¬»êÀÚ) - +(ºÎÈ£ ¿¬»êÀÚ) *(°£Á¢ÁöÁ¤ ¿¬»êÀÚ) &(¹øÁö ¿¬»êÀÚ)

* ¼øÀ§ 3, 4 : * / % + -(»ê¼ú ¿¬»êÀÚ)

* ¼øÀ§ 8 : & (ºñÆ® AND ¿¬»êÀÚ)

* ¼øÀ§ 9 : ^ (ºñÆ® XOR ¿¬»êÀÚ)

* ¼øÀ§ 10 : | (ºñÆ® OR ¿¬»êÀÚ)

* ¼øÀ§ 11 : && (³í¸® AND ¿¬»êÀÚ - ³í¸®°ö)

* ¼øÀ§ 12 : || (³í¸® OR ¿¬»êÀÚ - ³í¸®ÇÕ)

* ¼øÀ§ 15 : , (½°Ç¥ ¿¬»êÀÚ)