λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
ν”„λ‘œκ·Έλž˜λ°

κΈ°μˆ˜λ²• 및 μ‚°μˆ  μ—°μ‚° Number system and Arithmetic Operation

by 𝓃𝒢𝓃𝒢q 2015. 3. 3.

κΈ°μˆ˜λ²• Numeral System

 

2진법(binary system): 2λ₯Ό λ°‘μœΌλ‘œ ν•˜λŠ” κΈ°μˆ˜λ²•. 0κ³Ό 1 두 숫자λ₯Ό μ‚¬μš©.

8진법(octal system): 8을 λ°‘μœΌλ‘œ ν•˜λŠ” κΈ°μˆ˜λ²•. 0λΆ€ν„° 7κΉŒμ§€μ˜ 숫자λ₯Ό μ‚¬μš©.

16진법(hesadecimal system): 16을 λ°‘μœΌλ‘œ ν•˜λŠ” κΈ°μˆ˜λ²•. 0λΆ€ν„° 9κΉŒμ§€μ˜ 숫자, AλΆ€ν„° FκΉŒμ§€μ˜ 둜마자λ₯Ό μ‚¬μš©.

 

λͺ¨λ“  κΈ°μˆ˜λ²•μ€ μ•„λž˜μ™€ 같이 각 μžλ¦¬μˆ˜μ™€ λ°‘μ˜ κ±°λ“­μ œκ³±μ˜ 곱으둜 λ‚˜νƒ€λ‚΄μ–΄ 10μ§„μˆ˜λ‘œ λ³€ν™˜ν•  수 μžˆλ‹€.

 

 

 

 

μ»΄ν“¨ν„°μ—μ„œ 2진법을 μ‚¬μš©ν•˜λŠ” 이유?


μ»΄ν“¨ν„°μ˜ CPU 및 λ©”λͺ¨λ¦¬λŠ” μ§‘μ νšŒλ‘œ(Integrated Circuit, IC)둜 κ΅¬μ„±λ˜μ–΄ μžˆλ‹€. IC의 ν•€ 각각은 보톡 직λ₯˜μ „μ•• 0V λ˜λŠ” +5V 쀑 ν•˜λ‚˜μ˜ 전압을 κ°–κ²Œ λ˜μ–΄, ν•€ 1κ°œλ‘œλŠ” ON/OFF 두 가지 μƒνƒœλ§Œ λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.

μ΄λŸ¬ν•œ IC의 νŠΉμ„± λ•Œλ¬Έμ— 컴퓨터 λ‚΄λΆ€μ—μ„œλŠ” λͺ¨λ“  데이터λ₯Ό 2μ§„μˆ˜λ‘œ 닀루어야 ν•˜λ©°, μ΄λŠ” μ •μˆ˜ν˜•κ³Ό μ‹€μˆ˜ν˜• λͺ¨λ‘ μ μš©λœλ‹€. 단 10진법(decimal system)κ³Ό 달리, 2진법(binary system)으둜 μ •μˆ˜ν˜•κ³Ό μ‹€μˆ˜ν˜•μ„ λ‚˜νƒ€λ‚΄λŠ” 방법은 맀우 λ‹€λ₯΄λ‹€.

 



κ³ μ •μ†Œμˆ˜μ  Fixed-Point Arithmetic

 

μ†Œμˆ˜μ μ˜ μœ„μΉ˜κ°€ νŠΉμ • μœ„μΉ˜μ— κ³ μ •λ˜μ–΄ μžˆλ‹€κ³  κ°€μ •ν•˜κ³  μ‹€μˆ˜λ₯Ό ν‘œν˜„ν•˜λŠ” 방식.

κ·ΈλŸ¬λ‚˜ 컴퓨터 λ‚΄λΆ€μ—μ„œλŠ” 123.456κ³Ό 같은 κ³ μ •μ†Œμˆ˜μ  λ°©μ‹μœΌλ‘œ μ‹€μˆ˜λ₯Ό ν‘œν˜„ν•  수 μ—†λ‹€.

 

 

 

λΆ€λ™μ†Œμˆ˜μ  Floating Point Arithmetic

 

μ†Œμˆ˜μ μ˜ μœ„μΉ˜κ°€ κ³ μ •λ˜μ–΄ μžˆμ§€ μ•Šκ³  μœ„μΉ˜λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 수λ₯Ό λ”°λ‘œ ν‘œκΈ°ν•˜μ—¬ μ‹€μˆ˜λ₯Ό ν‘œν˜„ν•˜λŠ” 방식.

λΆ€ν˜Έ(sign bit), κ°€μˆ˜/유효숫자(significand), λ°‘μˆ˜(base), μ§€μˆ˜(exponent)둜 κ΅¬μ„±λœλ‹€.

 

 

컴퓨터 λ‚΄μ—μ„œλŠ” 2진법을 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— λ°‘μˆ˜λŠ” 항상 2κ°€ λœλ‹€.

IEEE ν‘œμ€€ λ°©μ‹μœΌλ‘œ 뢀동 μ†Œμˆ˜λ₯Ό ν‘œν˜„ν•˜λŠ” 방식은 λ‹€μŒκ³Ό κ°™λ‹€.

 

 

 

 

배정도 뢀동 μ†Œμˆ˜(double-precision floating-point number): 전체 64λΉ„νŠΈ (λΆ€ν˜Έ 1λΉ„νŠΈ, μ§€μˆ˜ 11λΉ„νŠΈ, κ°€μˆ˜ 52λΉ„νŠΈ)

단정도 뢀동 μ†Œμˆ˜(single-precision floating-point number): 전체 32λΉ„νŠΈ (λΆ€ν˜Έ 1λΉ„νŠΈ, μ§€μˆ˜ 8λΉ„νŠΈ, κ°€μˆ˜ 23λΉ„νŠΈ)

 

 

     

보수 Complementary Number

 

 

μœ„μ™€ 같이 λΊ„μ…ˆλ„ λ§μ…ˆκ³Ό 같은 λ°©μ‹μœΌλ‘œ μ—°μ‚°ν•˜κΈ° μœ„ν•˜μ—¬ μ–‘μ˜ 2μ§„μˆ˜λ₯Ό 보수둜 λ‚˜νƒ€λ‚Έλ‹€.

일반적으둜 μ΅œμƒμœ„ λΉ„νŠΈ(Most Significan Bit, MSB)λ₯Ό μ‚¬μš©ν•˜λŠ”λ°, 이λ₯Ό 'λΆ€ν˜Έ λΉ„νŠΈ'라고 λΆ€λ₯΄λ©° μ–‘μˆ˜λŠ” 0, μŒμˆ˜λŠ” 1을 λ‚˜νƒ€λ‚Έλ‹€.

-3의 경우, 10000011둜 ν‘œν˜„ν•˜λŠ” 것이 μ•„λ‹ˆλΌ μ•„λž˜μ™€ 같은 λ°©μ‹μœΌλ‘œ λ‚˜νƒ€λ‚Έλ‹€.



0

0

0

0

0

0

1

1

 

↓ +3의 0κ³Ό 1을 λ°˜μ „

 

1

1

1

 1

1

1

0

0

             

↓ 1을 더함

 

1

1

1

1

1

1

0

1

 

 

μ΄λŠ” μ›λž˜μ˜ μˆ˜μ— 보수λ₯Ό λ”ν•˜λ©΄ 0의 κ²°κ³Όκ°€ λ‚˜μ˜€λ„λ‘ λ§Œλ“€κΈ° μœ„ν•΄ κ³ μ•ˆλœ 것이며

데이터 νƒ€μž…μ˜ νŠΉμ„±μƒ μ΄ˆκ³Όλ˜λŠ” λΉ„νŠΈλŠ” λ¬΄μ‹œν•˜κΈ° λ•Œλ¬Έμ— 연산이 μ„±λ¦½ν•˜κ²Œ λœλ‹€.