ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 1 ¼Ò°³
C¾ð¾î¸¦ ÀÌ¿ëÇØ¼ ÇÁ·Î±×·¥À» ¸¸µå´Â ÀÌÀ¯´Â ÀԷ¹ÞÀº µ¥ÀÌÅ͸¦ °¡°øÇϰųª ¿¬»êÇØ¼ °á°ú¹°À» Ãâ·Â¹Þ±â À§ÇÔÀÌ´Ù. ÀÌ µ¥ÀÌÅÍ´Â Àΰ£ÀÇ °üÁ¡¿¡¼ º¸ÀÚ¸é, ¹®ÀÚȤÀº ¹®ÀÚ¿ÀÏ ¼öµµ ÀÖ°í, ¼ýÀÚÀÏ ¼öµµ ÀÖ´Ù. ¼ýÀÚ¶ó¸é Á¤¼öÀÏ ¼öµµ ÀÖ°í, ¼Ò¼öÁ¡À» °¡Áø ¼ýÀÚÀÏ ¼öµµ ÀÖ´Ù. ȤÀº ÀÌµé µ¥ÀÌÅÍÀÇ ¹À½ÀÏ ¼öµµ ÀÖ´Ù. 1.1 ÄÄÇ»ÅÍ´Â ¸ðµç µ¥ÀÌÅ͸¦ bit ·Î º»´Ù
±×·¯³ª Àΰ£ÀÌ µ¥ÀÌÅ͸¦ ¼ýÀÚ, ¹®ÀÚ, ¹®ÀÚ¿µî ´Ù¾çÇÏ°Ô ±¸º°ÇÏ´Â °Í°ú´Â ´Þ¸® ÄÄÇ»ÅÍ´Â ¸ðµç µ¥ÀÌÅ͸¦ bit·Î º»´Ù. ¼ýÀÚµç ¹®ÀÚµç ¹®ÀÚ¿À̵çÁö °£¿¡ bitÀÇ ³ª¿ÀÏ »ÓÀÌ´Ù. ÄÄÇ»ÅÍ´Â bitÀÌ¿ÜÀÇ ´Ù¸¥ µ¥ÀÌÅÍ´Â ¾Ë ¼ö°¡ ¾ø´Ù.
»ç¶÷À̶ó¸é 100000Àº ¼ýÀÚ°í »ç¶÷Àº ¹®ÀÚ ÀÓÀ» °æÇèÀûÀ¸·Î ¾Ë ¼ö ÀÖ´Ù. ±×·¯³ª ÄÄÇ»ÅÍ´Â °æÇèÀ̶ó´Â °É °¡Áö°í ÀÖÁö ¸øÇÏ´Ù. µÑ´Ù ºñÆ®ÀÇ ³ª¿ÀÏ »ÓÀÌ´Ù. ÄÄÇ»ÅÍ´Â ÀÌ°Ô ¼ýÀÚÀÎÁö ¹®ÀÚÀÎÁö ±¸ºÐÇÏÁö ¸øÇÑ´Ù. 0ÀÎÁö 1ÀÎÁö°¡ Áß¿äÇÒ »ÓÀÌ´Ù. 00000000 1000011 11000000 00010000 <--- 100000 00100101 0011001 00010111 01100001 <--- "»ç¶÷"
ÇÁ·Î±×·¥Àº ÄÄÇ»ÅÍ¿Í ´ëȸ¦ ÇÏ´Â °´Ã¼´Ù. ÇÁ·Î±×·¥À» ÀÌ¿ëÇØ¼ ¿ì¸®´Â µ¡¼À/°ö¼ÀÀ» Çϰųª ¹®ÀÚ¿À» ó¸®Çϵµ·Ï ÇØ¼ ÇÊ¿äÇÑ °á°ú¹°À» ¾ò¾î³½´Ù. ±×·±µ¥, ÄÄÇ»ÅÍ´Â ¼ýÀÚ¿Í ¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¸øÇϴµ¥, ¾î¶»°Ô ÇÁ·Î±×·¥ÀÇ ¿äûÀ» ó¸®ÇÒ ¼ö ÀÖÀ»±î.
ÄÄÇ»ÅͰ¡ ó¸®ÇÒ ¼ö ¾øÀ¸¹Ç·Î, ÇÁ·Î±×·¥À» ÅëÇØ¼ ó¸®ÇÏ´Â ¼ö ¹Û¿¡ ¾ø´Ù. Áï ¶È°°Àº 00000110À̶ó´Â Á¤º¸°¡ ÁÖ¾îÁ³À» ¶§, ¾î¶³ ¶§´Â ¼ýÀڷΠó¸®Çϵµ·Ï Çϰí, ¾î¶³ ¶§´Â ¹®ÀڷΠó¸®Çϵµ·Ï ÇÏ´Â ÀÏÀ» ÇÁ·Î±×·¥¿¡¼ ¸Ã¾ÆÁÖ¾î¾ß ÇÑ´Ù. 1.2 µ¥ÀÌÅÍ Å¸ÀÔÀ» ÅëÇÑ Ãß»óÈ
ÄÄÇ»ÅͰ¡ 0°ú 1¸¸À» ±¸ºÐÇØ ³¾¼ö ÀÖ´Ù´Â ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ ÇÁ·Î±×·¡¹Ö ¾ð¾îµéÀº µ¥ÀÌÅÍ Å¸ÀÔÀ̶ó´Â °ÍÀ» µÎ¾î¼ À̹®Á¦¸¦ ÇØ°áÇÑ´Ù. ¼ýÀÚ 97 ¹®ÀÚ 'a'
^ ^
| |
+- µ¥ÀÌÅÍ Å¸ÀÔ --+ | ÇÁ·Î±×·¡¹Ö ¾ð¾î ¼öÁØ
| |
1100001 | ±â°èÀû ¼öÁØ¿¡¼ º» ¼ýÀÚ 97°ú ¹®ÀÚ 'a'
À§¿¡¼ ó·³ ÄÄÇ»ÅÍ¿¡´Â 1100001 À̶ó°í ÀúÀåµÇ¾î ÀÖ´Â °ªÀ» ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼ ¾î¶² µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î ÀдÀ³Ä¿¡ µû¶ó¼ ¼ýÀÚ 97·Î ȤÀº ¹®ÀÚ 'a'·Î ÀÐÀ» ¼öµµ ÀÖ´Ù. #include <stdio.h> int main() { char id = 'a'; printf("%d\n", (int)id); // ÁÖ 1 printf("%c\n", id); printf("%c\n", (int)id + 2); printf("%c\n", 99); return 0; }ÁÖ 1¿¡¼ »ç¿ëµÈ (int) ´Â cast¿¬»êÀÚ·Î º¯¼öid¸¦ intÇüÀ¸·Î ÀÐÀ¸¶ó´Â °É ÀǹÌÇÑ´Ù. ±×·¯´Ù º¸´Ï ¹®ÀÚ¿Í ¼ýÀÚ¸¦ ´õÇÏ´Â µîÀÇ ÁÖ 2¿Í °°Àº ¿¬»êµµ °¡´ÉÇØÁø´Ù. 00000000 00000000 00000000 1100001 <---- 'a' + 00000000 00000000 00000000 0000010 <---- '2' ------------------------------------ 00000000 00000000 00000000 1100011 <---- ¹®ÀÚ 'c', ¼ýÀڷδ 99 1.3 ¼ýÀÚ ´Ù·ç±â
¼ýÀÚ¸¦ ´Ù·ç±â À§ÇÑ µ¥ÀÌÅÍŸÀÔÀ¸·Î int, long ÇüÀÌÀÖ´Ù´Â °É ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ¿ì¼± °¡Àå ¸¹ÀÌ ¾²ÀÌ´Â int¿¡ ´ëÇØ¼ ¾Ë¾Æº¸ÀÚ. int´Â Á¤¼ö¸¦ ³ªÅ¸³»±â À§Çؼ »ç¿ëÇϸç, 4 byteÀÇ Å©±â¸¦ °¡Áö°í ÀÖ´Ù. ±×·¯¹Ç·Î ÃÖ´ë 0~2^32 ¹üÀ§ÀÇ Á¤¼ö°¡ µé¾î°¨À» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.
±×·¯³ª Á¤¼ö¿¡´Â ¾çÀÇ Á¤¼ö¿Í ÇÔ²² À½ÀÇ Á¤¼ö°¡ ÀÖ´Ù. À̸¦ À§Çؼ 32bitÀÇ Ã¹ ºñÆ®¸¦ ºÎÈ£¸¦ Ç¥½ÃÇϱâ À§Çؼ »ç¿ëÇϴµ¥, ¸¸¾à ù ºñÆ®°¡ 1À̸é À½ÀÇ Á¤¼ö ±×·¸Áö ¾Ê°í ù ºñÆ®°¡ 0ÀÌ¸é ¾çÀÇ Á¤¼ö°¡ µÈ´Ù. 00000000 00000000 00000000 00000001 <--- ¾çÀÇ Á¤¼ö 1 11111111 11111111 11111111 11111111 <--- À½ÀÇ Á¤¼ö -1°³³äÀº ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀε¥, ÇѰ¡Áö È¥µ¿µÇ´Â Á¡ÀÌ ÀÖÀ» °ÍÀÌ´Ù. -1À̸é 100000000 00000000 ....ÀÌ ¾Æ´Ñ°¡? ÇÏ´Â °ÍÀÌ´Ù. ¿©±â¿¡¼ º¸¼ö°³³äÀÌ ³ª¿Â´Ù. º¸¼ö´Â ´ÙÀ½ µÎ °¡Áö ¹æ½ÄÀÌ Àִµ¥, º¸¼ö¸¦ ÀÌ¿ëÇØ¼ À½¼ö¸¦ Ç¥ÇöÇÏ°Ô µÇ´Â ¸Å¿ì Áß¿äÇÑ °³³äÀÌ´Ï ¼÷ÁöÇÏ°í ³Ñ¾î°¡µµ·Ï ÇÏÀÚ.
int main() { int i = 1; int j; j = ~i; printf("%d\n", j); printf("%d\n", ~j); }~´Â º¸¼ö¿¬»êÀÚÀÌ´Ù. 1Àº 00000000 00000000 00000000 00000001 À̹ǷΠj´Â 11111111 11111111 11111111 11111111 11111110ÀÌ µÇ°í, À̰ÍÀº -2°¡ µÊÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ¾çÀÇ Á¤¼ö¸¦ À½ÀÇ Á¤¼ö·Î ȤÀº ±× ¹Ý´ë·Î ¹Ù²Ù°í ½Í´Ù¸é º¸¼ö¿¡ + À» ÇØÁÖ¸é µÈ´Ù. À§ ÇÁ·Î±×·¥À» ¾à°£ ¼öÁ¤Çؼ Á¤¼ö º¯È¯ ÇÁ·Î±×·¥À» ¸¸µé¾î º¸±â ¹Ù¶õ´Ù. 1.4 µ¥ÀÌÅÍ Çüº¯È¯
ÀÌ»ó ÄÄÇ»ÅÍ´Â ¸ðµç µ¥ÀÌÅ͸¦ bit·Î¸¸ º»´Ù´Â °ÍÀ» ÀÌÇØÇßÀ» °ÍÀÌ´Ù. À̰ÍÀ» Àΰ£ÀÌ º¸±â ½±°Ô ÀÏÁ¾ÀÇ ¾à¼ÓÀ» ÅëÇØ¼, ÀоîµéÀÎ bit°ªÀ» ¼ýÀÚ, ¹®ÀÚ·Î º¸°ÔµÈ´Ù. ¾îÂ÷ÇÇ À̰ÍÀº ¾à¼ÓÀ̱⠶§¹®¿¡, ¼ýÀÚ³ª ¹®ÀÚ ÀÌ¿ÜÀÇ ¾î¶°ÇÑ µ¥ÀÌÅÍ(±¸Á¶Ã¼ °°Àº)·Îµµ °¡°øÇÒ ¼ö ÀÖ´Ù.
±×·¸´Ù¸é °¢ µ¥ÀÌÅÍ Å¸ÀÔÀ» ¼·Î º¯È¯ÇÏ´Â °Íµµ °¡´ÉÇϸ®¶õ°É ¿¹»óÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. int<->char, signed int <-> unsigned int, int <--> long µîÀÇ µ¥ÀÌÅÍ Å¸ÀÔ°£ º¯È¯ÀÌ °¡´ÉÇÏ´Ù. intÇü µ¥ÀÌÅͶó ÇÏ´õ¶óµµ char µ¥ÀÌÅÍÀÎ°Í Ã³·³ ÀÐÀÚ¶ó°í ¾à¼Ó¸¸ ÇÏ¸é µÇ±â ¶§¹®ÀÌ´Ù.
ÀÌ·¯ÇÑ ¾à¼ÓÀ» °¡´ÉÇÏ°Ô ÇÏ´Â°Ô Çüº¯È¯¿¬»êÀÚ(ij½ºÆÃ ¿¬»êÀÚ)ÀÌ´Ù.
#include <stdio.h> int main() { int i=1; unsigned int j=2; i = ~(i << 31); // ÁÖ 1 if (j < i+1) printf("i+1 > j \n"); else printf("i+1 < j \n"); }ÁÖ 1Àº int·Î Ç¥Çö°¡´ÉÇÑ ¾çÀÇÁ¤¼ö Áß °¡Àå Å« ¼ö¸¦ ±¸Çϱâ À§ÇÑ ÄÚµå´Ù. i << 31 Àº 10000000 00000000 00000000 00000000 ~(i << 31)Àº 01111111 11111111 11111111 11111111 ÀÌ µÇ¹Ç·Î °¡ÀåÅ« Á¤¼öÀÎ 2147483647 ÀÌ µÈ´Ù.¿©±â¿¡ +1 À» ÇØ¼ 2¿Í ºñ±³¸¦ Çß´Ù. ´Ü¼øÇÏ°Ô »ý°¢Çϸé i´Â 2147483678 ÀÌ µÉ °ÍÀ̹ǷΠjº¸´Ù Å©´Ù¶ó°í »ý°¢ÇÒ ¼ö ÀÖ°ÚÁö¸¸ °á°ú´Â ¹Ý´ë·Î ³ª¿Ã °ÍÀÌ´Ù. ¿Ö³ÄÇϸé i¿¡ +1À» Çϸé 100000000 00000000 00000000 00000000ÀÌ µÇ´Âµ¥, ÀÌ °ÍÀº -2147483648ÀÌ µÇ±â¶§¹®ÀÌ´Ù.
ÀÌ´Â i°¡ signed ŸÀÔÀÌ¶ó¼ °¡Àå ¿ÞÂÊ ºñÆ®°¡ À½¼ö¸¦ ³ªÅ¸³»´Âµ¥ »ç¿ëµÇ¾ú±â ¶§¹®ÀÌ´Ù. ÀÌ ¹®Á¦´Â i¿¡ ÀúÀåµÈ µ¥ÀÌÅ͸¦ unsigned ÇüÀ¸·Î Àоî¶ó¶ó°í ÇØÁÖ´Â °ÍÀ¸·Î ÇØ°áÇÒ ¼ö ÀÖ´Ù. cast ¿¬»êÀÚ´Â ÀÌ·² ¶§ »ç¿ëÇÑ´Ù.
if (j < i+1) À» if (j < (unsigned int)i+1) ·Î º¯°æÇÑ´Ù.À§¿¡¼ ó·³ º¯°æÇϰí ÄÄÆÄÀÏ ÇÑ ÈÄ, ´Ù½ÃÇѹø ½ÇÇà½ÃÄÑ º¸¸é, ¿øÇÏ´Â µ¥·Î °á°ú°¡ ³ª¿À´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ij½ºÆ® ¿¬»êÀÚ¸¦ »ç¿ëÇÔÀ¸·Î½á °¡Àå¿ÞÂÊ ºñÆ®¸¦ À½¼ö¸¦ ³ªÅ¸³»±â À§ÇÑ Ç¥½Ã°¡ ¾Æ´Ñ °ª(2^31)À¸·Î Àоîµé¿´±â ¶§¹®ÀÌ´Ù. µ¥ÀÌÅ͸¦ ºñ±³ÇÒ ¶§´Â ŸÀÔÀ» Á¤È®È÷ ¸ÂÃß¾î ÁÖ¾î¾ß ÇÑ´Ù. À§ÀÇ Äڵ尡 ¹®Á¦°¡ µÇ´Â °ÍÀº ºñ±³ÇÒ Å¸ÀÔÀ» ¸íÈ®È÷ ÇÏÁö ¾Ê¾Ò±â ¶§¹®ÀÌ´Ù. intÇüÀº intÇü³¢¸®, ¶ÇÇÑ °°Àº intÇüÀÌ´õ¶óµµ signed¿Í unsignedµµ ¼·Î ¸ÂÃß¾î ÁÖ¾î¾ß ÇÑ´Ù. ŸÀÔÀ» ¼·Î ´Ù¸£°Ô ÇÏ´õ¶óµµ ÄÄÆÄÀÏµÇ°í ½ÇÇàÀÌ µÇÁö¸¸ À§¿¡¼ ó·³ ÀüÇô ¾û¶×ÇÑ °á°ú°¡ ³ª¿Ã ¼ö Àֱ⠶§¹®ÀÌ´Ù. |
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|