ÄÄÇ»ÅÍÀÇ ¼ö ó¸® ü°è

1. ÄÄÇ»ÅÍ ½Ã½ºÅÛÀÇ ±¸¼º

ÄÄÇ»ÅÍ ½Ã½ºÅÛÀº Å©°Ô hardware ¿Í software µÎ ºÎºÐÀ¸·Î ±¸¼ºµÈ´Ù.

ÄÄÇ»ÅÍ°¡ ´Ù·ç´Â ¸ðµç Á¤º¸´Â ÄÄÇ»ÅÍ Çϵå¿þ¾îÀÇ ¸Þ¸ð¸®¿¡ ÀÌÁø¼ö(binary digit; BIT) ÇüÅ·ΠÀúÀåµÈ´Ù. ÇϳªÀÇ bit´Â ON/OFF, TRUE/FALSE ¶Ç´Â 1/0°ú °°Àº 2°¡Áö »óŸ¸ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. Bit 8°³¸¦ ÇÑ ¹­À½À¸·Î ó¸®Çϸé 2ÀÇ 8½Â, ÃÑ 256°¡ÁöÀÇ »óŸ¦ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ bit 8°³ÀÇ ¹­À½À» BYTE¶ó ÇÑ´Ù. Byte°¡ ´Ù½Ã ¹­¿©¼­ word, double word¿Í °°Àº º¸´Ù Å« Á¤º¸ ÀúÀå ü°è¸¦ ±¸¼ºÇÑ´Ù.

1/0°ú °°Àº µÎ°¡Áö »óÅ¿¡ °üÇÑ ¿¬»ê ó¸®(AND, OR, XOR, NOT)¸¦ ºÎ¿ï´ë¼ö(Boolean algebra)¶ó ÇÑ´Ù.

2. ÀÚ·á Ç¥Çö

ÄÄÇ»ÅÍ ³»ºÎ¿¡¼­ ¼ýÀÚ È¤Àº ¹®ÀÚ ÀÚ·á°¡ ¾î¶»°Ô Ç¥ÇöµÇ°í 󸮵Ǵ°¡´Â C ÇÁ·Î±×·¡¹ÖÀÇ Çʼö »çÀü Áö½ÄÀº ¾Æ´ÏÁö¸¸ À̸¦ ÀÌÇØÇÔÀ¸·Î½á ÇÁ·Î±×·¥¿¡ ´ëÇÑ ÀÌÇظ¦ ±íÀÌ ÇÒ ¼ö ÀÖ´Ù.

Á¤¼öÀÇ 2Áø Ç¥Çö

¾Õ¿¡¼­ ¾ð±ÞÇÏ¿´µíÀÌ ÇÁ·Î±×·¥ ÀÚü¸¦ Æ÷ÇÔÇÑ ¸ðµç ÀÚ·á ¶Ç´Â Á¤º¸´Â ÄÄÇ»ÅÍ ³»ºÎ¿¡¼­ BITÀÇ ¹­À½À¸·Î Ç¥ÇöµÈ´Ù. ÇϳªÀÇ BIT·Î´Â 1 ¶Ç´Â 0 µÎ°¡Áö °ªÀ» Ç¥ÇöÇÒ ¼ö ÀÖ°í µÎ °³ÀÇ BITµé·Î´Â ³×°¡Áö °ªÀ» Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.

          00 - 0
          01 - 1
          10 - 2
          11 - 3
¸¸ÀÏ ¿ì¸®°¡ 4°¡Áö ±âÈ£(symbol)¸¸ Ç¥ÇöÇÏ·Á ÇÏ¸é µÎ ºñÆ®¸¸ °¡Áö°í 1´ë1 ´ëÀÀµÇ´Â ±âÈ£¿Í ºñÆ® ÆÐÅÏÀ» Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦µé¸é, ¼ýÀÚ 0, 1, 2, 3Àº À§ ºñÆ® ÆÐÅÏÀ» »ç¿ëÇÏ¿© Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.

À§¿Í°°Àº ƯÁ¤ ±âÈ£¿¡ ´ëÇÑ Æ¯Á¤ ºñÆ® ÆÐÅÏÀ» ÄÚµå(code)¶ó ÇÏ°í ƯÁ¤ ±âÈ£¿¡ ´ëÇÑ ÄÚµå ºÎ¿© ÀÛ¾÷À» ÄÚµù(coding) ¶Ç´Â ÀÎÄÚµù(encoding)À̶ó ÇÑ´Ù.

¼¼ bit·Î´Â 8°³ÀÇ ¼­·Î ´Ù¸¥ °ªÀ» Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.

          000               100
          001               101
          010               110
          011               111
n°³ÀÇ bits·Î´Â 2n°³ÀÇ ±âÈ£¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î, 8 bit·Î´Â 28 = 256, 10 bit·Î´Â 210 = 1024 °¡ÁöÀÇ °ªµéÀ» Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. (ÄÄÇ»ÅÍ¿¡¼­´Â ¸ðµç Á¤º¸°¡ 2ÁøÀ¸·Î 󸮵ǹǷΠ2ÀÇ ¸è¼ö°¡ ÀÚÁÖ »ç¿ëµÈ´Ù. Àü»ê¿¡¼­ 1K´Â 2ÀÇ 10½Â, Áï 1024ÀÌ´Ù.)

ÀÚ¿¬¼ö 0, 1, 2, 3, 4, ... ¸¦ ºñÆ® ¹­À½À¸·Î Ç¥ÇöÇÏ´Â ¹æ¹ýÀº ¿©·¯°¡Áö°¡ ÀÖÀ»¼ö ÀÖÀ¸³ª °¡Àå ÀÚ¿¬½º·¯¿î ¹æ¹ýÀº ¿ì¸®°¡ »ç¿ëÇÏ´Â 10Áø¼ö ó·³ 2Áø¼ö ü°è¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù.

10Áø¼ö

2Áø¼ö

=

=

2Áø¼ö°¡ ÄÄÇ»ÅÍ¿¡ Á¤ÇØÁø bitµéÀ» »ç¿ëÇÏ¿© ÀúÀåµÉ °æ¿ì ¿ÞÂÊÀÇ »ç¿ëµÇÁö ¾ÊÀº bitµéÀº 0À¸·Î ä¿öÁø´Ù. ¿¹¸¦µé¸é, 16 bit (word)·Î 10Áø¼ö 168À» ÀúÀåÇϸé 0000000010101000¿Í °°ÀÌ µÈ´Ù.

À½¼ö¸¦ Æ÷ÇÔÇÑ Á¤¼ö Ç¥Çö

À§¿¡¼­ ¼³¸íÇÑ 2Áø ü°è´Â ÀÚ¿¬¼ö 󸮿¡´Â ÀûÇÕÇϳª À½¼ö¿¡ ´ëÇÑ °í·Á°¡ ¾ø´Ù. °¡Àå ¼Õ½¬¿î À½¼ö ó¸® ¹æ¹ýÀº ºÎÈ£ ºñÆ®¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. Á¦ÀÏ »óÀ§ (¿ÞÂÊ, MSB-Most Significant Bit) ºñÆ®¸¦ ºÎÈ£ (sign) 󸮿ëÀ¸·Î ÇÒ´çÇÏ¿© ÀÌ ºñÆ®°¡ 0ÀÌ¸é ¾ç¼ö, 1À̸é À½¼ö·Î ó¸®ÇÏ´Â ¹æ¹ýÀÌ´Ù.

¿¹¸¦µé¸é, 16 ºñÆ®·Î +100, -100À» Ç¥ÇöÇÏ¸é ´ÙÀ½°ú °°´Ù.

+100: 0000 0000 0110 0100

-100: 1000 0000 0110 0100

±×·¯³ª À§ ¹æ¹ýÀº µÎ ¼öÀÇ »çÀÌÀÇ ¿¬»êÀÌ ½±Áö ¾Ê¾Æ º¸Åë 2ÀÇ º¸¼ö (two's complement)¶ó ºÒ¸®´Â ¹æ¹ýÀ» ÁÖ·Î »ç¿ëÇÑ´Ù. 2ÀÇ º¸¼ö¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀº ¾ç¼öÀÇ °æ¿ì ÀÚ¿¬¼ö¿Í µ¿ÀÏÇϳª À½¼öÀÇ °æ¿ì ¾ç¼öÀÇ ¸ðµç ºñÆ®¸¦ ¹ÝÀü (0Àº 1·Î 1Àº 0À¸·Î) ½ÃŲ ÈÄ ±× °á°ú¿¡ 1À» ´õÇÑ´Ù.

2ÀÇ º¸¼ö¸¦ »ç¿ëÇÑ +100, -100ÀÇ Ç¥ÇöÀº ´ÙÀ½°ú °°´Ù.

+100: 0000 0000 0110 0100

-100: 1111 1111 1001 1100

À§¿¡¼­ -100ÀÇ 2ÀÇ º¸¼ö¸¦ ÃëÇϸé +100ÀÌ µÊÀ» ¾Ë ¼ö ÀÖ´Ù.

2ÀÇ º¸¼ö¸¦ »ç¿ëÇÏ¿© Á¤¼ö¸¦ Ç¥ÇöÇÏ´Â °æ¿ì¿¡µµ À½¼ö´Â MSB°¡ 1ÀÌ µÊÀ» ¾Ë ¼ö ÀÖ´Ù.

Two's complement number 1111 1111 1101 0110ÀÇ 10Áø¼ö Ç¥ÇöÀº ¿ì¼± MSB°¡ 1À̹ǷΠÀ½¼ö·Î ó¸®ÇÏ¿© one's complement 0000 0000 0010 1001¸¦ ±¸ÇÏ°í ¿©±â¿¡ 1À» ´õÇÏ¿© 0000 0000 0010 1010ÀÇ 10Áø¼ö Ç¥Çö 42ÀÇ À½¼ö -42¸¦ ±¸ÇÒ ¼ö ÀÖ´Ù.

À§ÀÇ ¼ö ü°è¿¡¼­ ¾Ë ¼ö ÀÖµå½Ã ÇÑÁ¤µÈ °¹¼öÀÇ ºñÆ®µé·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Â ÃÖ¼Ò, ÃÖ´ë ¼öÀÇ ¹üÀ§´Â Á¦ÇѵǾî ÀÖ´Ù. n ºñÆ®¸¦ »ç¿ëÇÏ¿© Ç¥Çö°¡´ÉÇÑ ¼öÀÇ ¹üÀ§´Â ÀÚ¿¬¼ö´Â 0¿¡¼­ 2n-1, Á¤¼ö´Â -2(n-1)¿¡¼­ 2n-1ÀÌ µÈ´Ù. ¿¹¸¦µé¸é, 8 ºñÆ®·Î Ç¥Çö°¡´ÉÇÑ ÀÚ¿¬¼ö ¹üÀ§´Â 0¿¡¼­ 255, Á¤¼ö´Â -128¿¡¼­ +127ÀÌ´Ù.

8Áø¼ö¿Í 16Áø¼ö Ç¥Çö

Áö±Ý±îÁö ¼ö¿¡ °üÇÑ ´Ù¸¥ Ç¥Çö ¹æ¹ýµéÀ» »ìÆ캸¾Ò´Ù. ¿©±â¼­ Áß¿äÇÑ Á¡Àº 2Áø¼ö·Î 010011·Î Ç¥ÇöµÇ¾ú°Å³ª 10Áø¼ö·Î 19·Î Ç¥ÇöµÇ¾ú°Å³ª Ç¥Çö¿¡ »ó°ü¾øÀÌ ¶È°°Àº ¼ö¸¦ Ç¥ÇöÇÏ°í ÀÖ´Ù´Â Á¡ÀÌ´Ù. »ç¶÷¿¡°Ô´Â 10Áø¼ö Ç¥Çö ¹æ¹ýÀÌ Æí¸®ÇÏ°í ÄÄÇ»ÅÍ´Â 2Áø¼ö 󸮿¡ ÀûÇÕÇÏ´Ù.

ÄÄÇ»ÅÍ°¡ ó¸®ÇÏ´Â 2Áø¼ö¸¦ 10Áø¼ö·Î º¯È¯Çϰųª 2Áø¼ö ü°è¸¦ Á÷Á¢ »ç¿ëÇÏ´Â °ÍÀº ¸Å¿ì ºÒÆíÇÏ´Ù. 2Áø¼ö´Â 8Áø¼ö(octal ) ¶Ç´Â 16Áø¼ö(hexadecimal, hex)¸¦ »ç¿ëÇÏ¿© º¸´Ù °£´ÜÈ÷ Ç¥ÇöµÉ ¼ö ÀÖ´Ù.

2Áø¼ö°¡ [0,1], 10Áø¼ö°¡ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]µéÀÇ ¼ýÀڷΠǥÇöµÇ´Â °Íó·³ 8Áø¼ö´Â [0, 1, 2, 3, 4, 5, 6, 7], 16Áø¼ö´Â [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f]¸¦ »ç¿ëÇÏ¿© Ç¥ÇöµÈ´Ù. ±âÈ£ [a, b, c, d, e, f] (¶Ç´Â [A, B, C, D, E, F])´Â 10Áø¼öÀÇ [10, 11, 12, 13, 14, 15]¿¡ ÇØ´çÇÑ´Ù.

C ÇÁ·Î±×·¥¿¡¼­ 10Áø¼ö´Â 0ÀÌ ¾Æ´Ñ ¼ýÀÚ·Î ½ÃÀÛÇÑ´Ù. 8Áø¼ö´Â 0À¸·Î ½ÃÀÛÇÏ°í 16Áø¼ö´Â 0x ¶Ç´Â 0X·Î ½ÃÀÛÇÑ´Ù. ±×·¯¹Ç·Î 0250Àº 8Áø¼ö 250, 0xA8Àº 16Áø¼ö A8À» ÀǹÌÇÑ´Ù. (C ÇÁ·Î±×·¥¿¡¼­ 2Áø¼ö´Â »ç¿ëÇÏÁö ¾Ê´Â´Ù.)


10Áø¼ö :     122           199            21            63

 2Áø¼ö :   01111010      11000111       010101        1111111

16Áø¼ö :  0111 1010      1100 0111     0001 0101     0011 1111
             0x7A          0xC7          0x15          0x3F

 8Áø¼ö : 01 111 010     11 000 111     00 010 101    00 111 111
             0172          0307           025          077



½Ç¼ö Ç¥Çö

½Ç¼ö´Â floating point¶ó ºÒ¸®´Â Ç¥Çö ü°è¸¦ »ç¿ëÇÑ´Ù. ÀÌ Ã¼°è´Â ¼Ò¼ö ºÎºÐÀ» °®´Â ¼ö³ª ¸Å¿ì À۰ųª Å« ¼ö¸¦ Ç¥ÇöÇϴµ¥ »ç¿ëµÈ´Ù.

Floating point numbers ¸¦ »ç¿ëÇÑ ¼ö Ç¥ÇöÀº scientific notation°ú Èí»çÇÏ´Ù.

3.141592 * 10 + 2.7 * 103

¼Ò¼ýÁ¡À» ÀûÀýÈ÷ ¿òÁ÷ÀÓÀ¸·Î½á ´ëºÎºÐÀÇ ½Ç¼ö´Â ´ÙÀ½°ú °°Àº ÇüÀ¸·Î Ç¥·ÃÇÒ ¼ö ÀÖ´Ù.

-0.XXXXXX * 10n

À§ °æ¿ìó·³ ½Ç¼ö´Â ¼Ò¼ýÁ¡ ÀÌÇÏÀÇ ¼öÄ¡(XXXXXX) ¼Ò¼öºÎ(mantissa), Áö¼ö(exponent) n, ±×¸®°í ºÎÈ£(sign) ºÎºÐµé·Î ±¸¼ºµÈ´Ù. ÀÌ·¯ÇÑ ½Ç¼ö Ç¥Çö¿¡ °üÇÑ ±ÔÁ¤À¸·Î´Â IEEE (Institute for Electrical and Electronics Engineers)¿¡¼­ Á¦Á¤ÇÑ Ç¥ÁØ (IEEE Standard 754)ÀÌ ÁÖ·Î »ç¿ëµÈ´Ù.

C ÇÁ·Î±×·¥¿¡¼­ ½Ç¼ö 31.41592´Â 314.1592E-1 ¶Ç´Â 0.3141592e2 ·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª Á¤¼öÀÇ °æ¿ì¿Í ¸¶Âù°¡Áö·Î ½Ç¼ö Ç¥Çö¿¡ »ç¿ëµÇ´Â ºñÆ®¼öÀÇ Á¦ÇÑÀ¸·Î Ç¥Çö °¡´ÉÇÑ ¼öÄ¡ÀÇ ¹üÀ§°¡ ÇÑÁ¤µÇ¾î ÀÖ´Ù.


[ Table Of Contents | Previous Chapter | Next Chapter]