6-2-5.ºñÆ® ¿¬»êÀÚ

ºñÆ® ¿¬»êÀÚ´Â ¾çº¯ÀÇ ´ëÀÀµÇ´Â ºñÆ®³¢¸® ³í¸®ÀûÀÎ ¿¬»êÀ» ¼öÇàÇÏ¿© »õ·Î¿î °ªÀ» ¸¸µç´Ù. ºñÆ®¸¦ Á¶ÀÛÇÑ´Ù´Â ¸é¿¡¼­ ±²ÀåÈ÷ ¼¶¼¼ÇÏ°í ¿¬»ê ¼Óµµ°¡ ºü¸£´Ù. ±×·¯³ª ÀÌÁø¼ö ´ÜÀ§ÀÇ ±â°èÀûÀÎ ¿¬»êÀ̶ó Ãʺ¸ÀÚ°¡ ÀÌÇØÇϱ⠾î·Æ°í °í±Þ ¾ð¾îÀÎ ÀÚ¹Ù¿Í ¾î¿ï¸®Áö ¾Ê¾Æ »ç¿ëºóµµ´Â ³·´Ù. ºñÆ® ¿¬»ê ¹æ½ÄÀº ´ÙÀ½ 4°¡Áö°¡ ÀÖ´Ù.

 

¿¬»êÀÚ

¼³¸í

&

´ëÀÀµÇ´Â ºñÆ®°¡ ¸ðµÎ 1ÀÏ ¶§¸¸ °á°ú°ªÀÌ 1ÀÌ´Ù.

|

´ëÀÀµÇ´Â ºñÆ®Áß Çϳª¶óµµ 1ÀÌ¸é °á°ú°ªÀÌ 1ÀÌ´Ù.

^

´ëÀÀµÇ´Â ºñÆ®°¡ ´Þ¶ó¾ß °á°ú°ªÀÌ 1ÀÌ´Ù.

~

¸ðµç ºñÆ®¸¦ ¹ÝÀü½ÃŲ´Ù.

 

ºñÆ®(bit)´Â ±â¾ïÀÇ ÃÖ¼Ò ´ÜÀ§·Î¼­ 1 ¶Ç´Â 0 ÇϳªÀÇ °ªÀ» ÀúÀåÇϸç ÀÌ·± ºñÆ® ¿©·¯ °³°¡ ¸ð¿© ÇϳªÀÇ ¼öÄ¡°ªÀ» Ç¥ÇöÇÑ´Ù. ÀÏ»ó »ýÈ°¿¡¼­ »ç¿ëÇØ º» ÀûÀÌ ¾ø´Â ¿¬»êÀ̶ó »ý¼ÒÇÏÁö¸¸ ¾Ë°í º¸¸é ÀÌÁø¼ö¸¸Å­À̳ª °£´ÜÇÏ´Ù. ºñÆ® ¿¬»êÀ» ÀÌÇØÇÏ·Á¸é ºñÆ® ´ÜÀ§·Î °ª º¯È­¸¦ Àд 2Áø¼ö ¾Ï»êÀÌ °¡´ÉÇØ¾ß ÇÑ´Ù.

ºñÆ® ¿¬»êÀÚÀÇ ÇÇ¿¬»êÀÚ´Â Á¤¼ö¸¸ °¡´ÉÇÏ¸ç ½Ç¼ö´Â ¾µ ¼ö ¾ø´Ù. Áö¼ö¿Í °¡¼ö·Î ±¸¼ºµÈ ½Ç¼ö´Â ±¸Á¶°¡ º¹ÀâÇÏ¿© ºñÆ® ´ÜÀ§·Î Á¶ÀÛÇÒ ÀÏÀÌ ¾ø°í ºñÆ®¸¦ Á÷Á¢ °Çµå¸± ½Ç¿ëÀû °¡Ä¡µµ ¾ø´Ù. ´ÙÀ½ ¿¹Á¦·Î ºñÆ® ¿¬»êÀÚÀÇ ±âº» µ¿ÀÛÀ» ±¸°æÇØ º¸ÀÚ.

 

bitop

½ÇÇà°á°ú

class JavaTest {

      public static void main(String[] args) {

             int a = 0x34;

             int b = 0x96;

             int c = a & b;

             int d = a | b;

             System.out.printf("c = %x\n", c);

             System.out.printf("d = %x\n", d);

      }

}

c = 14

d = b6

 

0x34¿Í 0x96À» & ¹× | ¿¬»êÇÏ¿© ±× °á°ú¸¦ Ãâ·ÂÇß´Ù. ºñÆ®°ªÀÇ º¯È­¸¦ °üÂûÇØ º¸·Á¸é 10Áø¼öº¸´Ù´Â 16Áø¼ö°¡ Æí¸®ÇÏ´Ù. ¾î°¼­ ÀÌ·± ¼ýÀÚ°¡ ³ª¿À´ÂÁö Á÷°üÀûÀ¸·Î ÀÌÇصÇÁö ¾Ê´Âµ¥ ¼öÄ¡°ªÀ» ÀÌÁø ºñÆ®¿­·Î ±×·Á ³õ°í ¾Æ·¡ À§·Î ´ëÀÀµÇ´Â ºñÆ®³¢¸® ¿¬»êÇØ º¸ÀÚ.

& ¿¬»êÀº ´ëÀÀµÇ´Â ºñÆ®°¡ ¸ðµÎ 1ÀÏ ¶§ °á°ú ºñÆ®°¡ 1ÀÌ µÇ°í µÑ Áß Çϳª¶óµµ 0ÀÌ¸é °á°ú ºñÆ®´Â 0ÀÌ´Ù. 1°ú ¿¬»êµÇ´Â ºñÆ®´Â ¿ø·¡°ªÀ» À¯ÁöÇϸç 0°ú ¿¬»êµÇ´Â ºñÆ®´Â ¹«Á¶°Ç 0ÀÌ µÈ´Ù. ÀÌ Æ¯¼ºÀ» ÀÌ¿ëÇϸé 0°ú ´ëÀÀµÇ´Â ºñÆ®´Â ¹«Á¶°Ç 0ÀÌ µÇ´Âµ¥ À̸¦ ¸¶½ºÅ© ¿ÀÇÁ(mask off)¶ó°í ÇÑ´Ù.

| ¿¬»êÀº ¾Æ·¡ À§ ºñÆ®Áß Çϳª¶óµµ 1ÀÌ¸é °á°ú ºñÆ®´Â 1ÀÌ µÇ¸ç µÑ ´Ù 0ÀÏ ¶§¸¸ °á°ú ºñÆ®°¡ 0ÀÌ µÈ´Ù. 1°ú ¿¬»êµÇ´Â ºñÆ®´Â ¹«Á¶°Ç 1ÀÌ µÇ¸ç 0°ú ¿¬»êµÇ´Â ºñÆ®´Â ¿ø·¡°ªÀ» À¯ÁöÇÑ´Ù. ÀÌ Æ¯¼ºÀ» ÀÌ¿ëÇϸé 1°ú ´ëÀÀµÇ´Â ºñÆ®´Â ¹«Á¶°Ç 1ÀÌ µÇ´Âµ¥ À̸¦ ¸¶½ºÅ© ¿Â(mask on)À̶ó°í ÇÑ´Ù.

&¿Í |Àº ¿ìº¯ ÇÇ¿¬»êÀÚÀÇ ºñÆ® ±¸Á¶¿¡ µû¶ó Áº¯ ÇÇ¿¬»êÀÚ¿¡ ¸¶½ºÅ©¸¦ ¾º¿î ÈÄ ³í¸® ¿¬»êÀ» ¼öÇàÇÏ¿© ³ª¸ÓÁö ºñÆ®¸¸ ¼±ÅÃÀûÀ¸·Î Á¶ÀÛÇÏ´Â ±â¹ýÀÌ´Ù. ¸¶½ºÅ©¸¦ ¾º¿î ºñÆ®´Â ¿ø·¡°ªÀ» À¯ÁöÇϴµ¥ &´Â 1ÀÌ ¸¶½ºÅ©ÀÌ°í |Àº 0ÀÌ ¸¶½ºÅ©ÀÌ´Ù.

~ ´ÜÇ× ¿¬»êÀÚ´Â ¸ðµç ºñÆ®¸¦ ¹ÝÀü½ÃÄÑ 1Àº 0À¸·Î ¸¸µé°í 0Àº 1·Î ¸¸µç´Ù. ^ ¿¬»êÀº ¾çÂÊÀÇ ºñÆ®°¡ ´Ù¸¦ ¶§¸¸ 1ÀÌ µÇ¾î ¿ìº¯ÀÇ ºñÆ®°¡ 1ÀÎ ºÎºÐ¸¸ ¼±ÅÃÀûÀ¸·Î ¹ÝÀüµÈ´Ù. ºñÆ®ÀÇ °ªÀ» µÚÁý´Â ¹ÝÀü µ¿ÀÛÀº Àç¹ÝÀü½ÃÅ°¸é ¿ø·¡°ªÀ¸·Î µ¹¾Æ¿À´Â Ư¼ºÀÌ ÀÖ¾î °£´ÜÇÑ ¾Ïȣȭ¿¡ »ç¿ëµÈ´Ù.

½¬ÇÁÆ® ¿¬»êÀÚ´Â ¿ÞÂÊ ÇÇ¿¬»êÀÚÀÇ ºñÆ®¸¦ ¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ°¡ ÁöÁ¤ÇÏ´Â ¼ö¸¸Å­ ¿À¸¥ÂÊÀ̳ª ¿ÞÂÊÀ¸·Î ¹Ð¾î À̵¿½ÃŲ´Ù. À̵¿ ¹æÇâ°ú ºÎÈ£ À¯Áö ¿©ºÎ¿¡ µû¶ó ´ÙÀ½ ¼¼ °³ÀÇ ¿¬»êÀÚ°¡ ÀÖ´Ù.

 

¿¬»êÀÚ

¼³¸í

<< 

ºñÆ®¸¦ ¿ÞÂÊÀ¸·Î À̵¿ÇÏ°í ºó °ø°£Àº 0À¸·Î ä¿î´Ù.

>> 

ºñÆ®¸¦ ¿À¸¥ÂÊÀ¸·Î À̵¿ÇÑ´Ù. ÃÖ»óÀ§ ºÎÈ£ ºñÆ®´Â ±×´ë·Î À¯ÁöÇÑ´Ù.

>>> 

ºñÆ®¸¦ ¿À¸¥ÂÊÀ¸·Î À̵¿ÇÏ°í ºó °ø°£Àº 0À¸·Î ä¿î´Ù. ºÎÈ£¸¦ ¹«½ÃÇÏ°í ´Ü¼øÈ÷ ºñÆ®¸¦ ¹Ð±â¸¸ ÇÑ´Ù.

 

¿¹¸¦ µé¾î a << 2´Â aÀÇ ºñÆ®¿­À» ¸ðµÎ ¿ÞÂÊÀ¸·Î 2Ä­¾¿ À̵¿½ÃŲ´Ù. ù ¹ø° ºñÆ®°¡ ¼¼ ¹ø° Ä­À¸·Î À̵¿ÇÏ°í µÎ ¹ø° ºñÆ®´Â ³× ¹ø° Ä­À¸·Î À̵¿ÇÑ´Ù. ÀÌÁø¼öÀÇ Æ¯¼º»ó ºñÆ®¸¦ ¿ÞÂÊÀ¸·Î ¹Ð¸é 2ÀÇ °Åµì½ÂÀ» ÇÏ´Â È¿°ú°¡ ÀÖ´Ù. ¿¹¸¦ µé¾î ¿ÞÂÊÀ¸·Î ÇÑ Ä­ ¹Ð¸é °ªÀÌ 2¹è°¡ µÇ¸ç µÎ Ä­ ¹Ð¸é 4¹è°¡ µÈ´Ù. °ö¼ÀÀ» °í¼ÓÀ¸·Î ¼öÇàÇÒ ¼ö ÀÖ¾î °ú°Å ÄÄÇ»ÅÍ°¡ ´À¸± ¶§ ¸¹ÀÌ »ç¿ëÇÏ¿´´Ù.

ºñµð¿À ¸Þ¸ð¸®¸¦ Á÷Á¢ Á¶ÀÛÇϰųª À̹ÌÁöÀÇ Çȼ¿À» ¼¶¼¼ÇÏ°Ô Á¶ÀÛÇÒ ¶§´Â ºñÆ® ¿¬»êÀÚÀÇ ¿ªÇÒÀÌ ±²ÀåÈ÷ Áß¿äÇßÀ¸¸ç ½ºÅ©·ÑÀ̳ª Åõ¸í ¸¶½ºÅ© 󸮿¡ ÇʼöÀûÀÎ ¿¬»êÀ̾ú´Ù. ±×·¯³ª º¸È£µÈ ȯ°æ¿¡¼­ Á÷Á¢ÀûÀÎ ¸Þ¸ð¸® Á¶ÀÛÀÌ ±ÝÁöµÇ°í °í¼öÁØ ¶óÀ̺귯¸®°¡ ¿ö³« Àß ±¸ºñµÇ¾î ÀÖ¾î ¿äÁòÀº ½¬ÇÁÆ® ¿¬»êÀ» ÇÒ °æ¿ì°¡ ¸¹Áö ¾Ê´Ù.

¸Þ¸ð¸® °¡°ÝÀÌ ºñ½Ò ¶§´Â ÇϳªÀÇ Á¤¼ö°ª¿¡ ºñÆ®º°·Î Àß¶ó ¿©·¯ °¡Áö Á¤º¸¸¦ ÀúÀåÇß¾ú´Âµ¥ »ö»ó°ªÀ̳ª ÇÑ±Û Á¶ÇÕÇü ÄÚµå, Ç÷¡±×°ª µîÀÌ ´ëÇ¥ÀûÀÎ ¿¹ÀÌ´Ù. ÀÌ·± Á¶ÇÕ°ª¿¡¼­ ºñÆ®¸¦ À߶ó Á¤º¸¸¦ Àаųª Á¶ÀÛÇÒ ¶§ ºñÆ® ¿¬»êÀÚ°¡ ²À ÇÊ¿äÇÏ´Ù. ´ÙÀ½ ¿¹Á¦·Î & ¿¬»ê°ú >> ¿¬»êÀÌ ¾î¶»°Ô È°¿ëµÇ´ÂÁö ±¸°æÇØ º¸ÀÚ.

 

bitshift

½ÇÇà°á°ú

class JavaTest {

      public static void main(String[] args) {

             int c = 0x887944;

             System.out.printf("R = %x\n", (c & 0xff0000) >> 16);

             System.out.printf("G = %x\n", (c & 0x00ff00) >> 8);

             System.out.printf("B = %x\n", c & 0x0000ff);

      }

}

R = 88

G = 79

B = 44

 

0x887944ÀÇ °ªÀ» °¡Áö´Â »ö»ó°ªÀ» °¢ ¿ä¼Òº°·Î ºÐ¸®ÇÑ´Ù. ºñÆ®16 ~ ºñÆ® 23¿¡ ¹èÄ¡µÈ »¡°£»öÀ» ¾òÀ¸·Á¸é 0xff0000°ú & ¿¬»êÇÏ¿© ÃÊ·Ï»ö°ú ÆĶõ»öÀ» ¹ö¸°´Ù. »¡°£»öÀº ¸¶½ºÅ©¸¦ ¾º¿ö ³²°Ü µÎ°í ³ª¸ÓÁö »ö»óÀº ¿ÀÇÁ½ÃŲ´Ù. ±×¸®°í ¿À¸¥ÂÊÀ¸·Î 16Ä­ ¹Ð¾î ÀÚ¸®¼ö¸¦ À̵¿½ÃÅ´À¸·Î½á 88À̶ó´Â »¡°£»ö°ªÀ» ¾ò´Â´Ù. ´ÙÀ½ ±×¸²¿¡¼­ °ÝÀÚ Çϳª´Â 4ºñÆ®ÀÌ´Ù.

ÃÊ·Ï»öÀ̳ª ÆĶõ»ö ¿ä¼Ò¸¦ ºÐ¸®ÇÒ ¶§´Â ¸¶½ºÅ©°ª°ú ½¬ÇÁÆ® ÀÚ¸®¼ö°¡ ´Þ¶óÁø´Ù. ¹Ý´ë·Î ºÐ¸®µÈ R, G, B °ªÀ» ÇÕÃÄ Çϳª·Î ¸¸µé ¶§´Â << ¿¬»êÀÚ¿Í | ¿¬»êÀÚ°¡ »ç¿ëµÈ´Ù. ºñÆ® ¿¬»êÀÚ´Â ÀÌ·± Á¤¹ÐÇÑ ¿¬»ê¿¡ »ç¿ëµÈ´Ù.