[CS] λ°μ΄ν° μ μ₯ λ°©μ - μ μ(Integer)
νκ·Έ: CS
μΉ΄ν κ³ λ¦¬: CS
βοΈ μ»΄ν¨ν°μ λ°μ΄ν° μ μ₯ λ°©μ
μ μ₯λ°©μ
- μ κΈ°μ /λ§κ·Έλ€ν± μ νΈλ‘ μλ―Έλ₯Ό μ λ¬ν μ μλ κ°μ₯ κ°λ¨ν λ°©μμ΄ ON/OFF λ°©μμ΄λ€.
- μ΄λ₯Ό νννκΈ° κ°μ₯ μ μ ν λ°©μμ΄ 2μ§λ²μ΄λ€.
- νλμ λΉνΈλ 0μ΄λ 1μ κ°μ κ°μ§ μ μκ³ , κ°κ°μ μ°Έ, κ±°μ§ νΉμ μλ‘ λ°°νμ μΈ μνλ₯Ό λνλΈλ€.
- λ°λΌμ κ°μ λ©λͺ¨λ¦¬μ μ μ₯νλ €λ©΄ λ°μ΄ν°λ₯Ό 2μ§μλ‘ ννν μ μμ΄μΌ νλ€.
- λ¬Έμκ°μ κ²½μ° charset μ μν΄ λ³νλλ€.
- μ μ λ©λͺ¨λ¦¬λ‘ λ λ§μ μνλ₯Ό κ΄λ¦¬ν μ μλ€. (1bit λΉ λ κ°μ§μ μνλ₯Ό ννν μ μλ€.)
- λ©λͺ¨λ¦¬ κΈ°λ³Έ λ¨μ : 8bit == 1byte
μμλ‘ λ€μλ©΄, μΈκ°μ μκ°λ½μ΄
λͺ κ°
ν΄μ Έμλμ§, νΉμ μ νμλμ§λ₯Ό μΌλ€λ©΄, κΈ°κ³λ μκ°λ½μ νΉμ μμλ₯Ό ν λΉνμ¬λͺ λ²μ§Έ
μκ°λ½μ΄ ν΄μ§κ³ μ νλμ§λ₯Ό νμ νμ¬ κ·Έκ²μ μ«μλ‘ μΈμνλ μμ΄λ€. ν΄λΉ λΆλΆμ λΉνΈ μ°μ°μ μμ© λΆλΆμμ μ’ λ μμΈν λ€λ€λ³΄κ² λ€.
βοΈ λΉνΈ ν¬κΈ°μ μ μ₯ν μ μλ κ°μ λ²μ
8bit (255)
00000000 ~ 11111111
(-128 ~ +127)- 맨 μμ
0
μ λΆμΈλ€.
16bit (65535)
- \(-2^{15}\) ~ \(2^{15}\) (-32,768 ~ 32,767)
- 맨 μμ
0x
λ₯Ό λΆμΈλ€.
32bit (μ½ 42μ΅)
- μ½ -21μ΅ ~ + 21μ΅
π‘ μλ₯Ό λ€μ΄ 22μ΅ μ΄λΌλ λμ μ‘μλ₯Ό μ μ₯νλ €κ³ νλ©΄, μ΅μ 64bit(8byte) λ©λͺ¨λ¦¬κ° νμνλ€.
bit | λ¨μ |
---|---|
8bit(1byte) | byte |
16bit(2byte) | short |
32bit(4byte) | int |
64bit(8byte) | long |
βοΈ μ μλ₯Ό 2μ§μλ‘ νννλ λ°©λ²
λΆνΈ-ν¬κΈ°/μ λκ°(Sign-Magnitude)
- λΆλ μμμ μμ
κ°μλΆ(significand or mantissa)
λ₯Ό μ μ₯ν λ μ¬μ©νλ€. - 맨 μΌμͺ½ 1λΉνΈλ₯Ό λΆνΈ λΉνΈλ‘ μ¬μ©νλ€.
μμλ 0
,μμλ 1
μ΄λ€. - λλ¨Έμ§ λΉνΈλ μ λκ°(magnitude)μΌλ‘ μ μ₯νλ€.
- 8λΉνΈ = 1λΉνΈ(λΆνΈ) + 7λΉνΈ(μ λκ°, ν¬κΈ°)
ex) +24 => |+24| = 24 ---> 0001 1000 ex) -24 => |-24| = 24 ---> 1001 1000
- 8λΉνΈ = 1λΉνΈ(λΆνΈ) + 7λΉνΈ(μ λκ°, ν¬κΈ°)
- μμ λ²μ(8λΉνΈ κΈ°μ€): -127 ~ + 127
0111 1111 (127) 0111 1110 (126) 0111 1101 (125) ... 0000 0001 (1) 0000 0000 (+0) 1000 0000 (-0) 1000 0001 (-1) ... 1111 1101 (-125) 1111 1110 (-126) 1111 1111 (-127)
- λ¨μ
- λ κ°μ 0(+0, -0)μ΄ μ‘΄μ¬νλ€.
- μμμ μμλ₯Ό λνμ λ μ³μ§ μμ κ°μ΄ λμ¨λ€.
ex) 4λΉνΈμΌ κ²½μ°, 1 + -1 = ? 0001(+1) + 1001(-1) = 1010 (-2) <-- κ³μ° κ²°κ³Όκ° μ³μ§ μλ€.
- λΉΌκΈ°λ₯Ό μ²λ¦¬νλ μ»΄ν¨ν νλ‘λ₯Ό λ³λλ‘ μ€κ³ν΄μΌ νλ―λ‘ νλμ¨μ΄κ° 볡μ‘ν΄μ§λ€.
- μ₯μ
- μ΄ν΄νκΈ° μ½λ€!
1μ 보μ(Signed 1βs Complement)
- Sign-Magnitude λ°©μμμλ λΆνΈ(+,-)νμλ₯Ό 맨 μμ 1λΉνΈλ₯Ό μ΄μ©ν΄μ νμνλ€. κ·Έλ¬λ μ΄λ° λ°©μμΌλ‘λ μ λλ‘ λ μ°μ°μ΄ νλ€μκ³ , κ²°κ΅ μλ‘μ΄ λΆνΈ νμ λ°©λ²μ μ°Ύκ²λλ€.
- κ°μ°κΈ°(adder)λ₯Ό μ¬μ©νλ μ»΄ν¨ν°κ° μμ μ μλ₯Ό νννκΈ° μν΄μ μλμ κ°μ μμ΄λμ΄κ° νμνλ€.
-
1
A-B = A+(-B)
μλ₯Όλ€μ΄ μ£Όνμ μ΄μ©ν λ§μ , λΊμ μμ 5, 10μ 보μλ₯Ό μ¬μ©νλ€. 보μ μκ° ν΄λ³΄λ©΄ νμ 10μ§μ λΊμ μ ν λ 보μλ₯Ό μ΄μ©ν΄ λΊμ μ νκ³ μλ€.
14-6
μ κ³μ°ν λ4+4
λ‘ κ³μ° νλ κ²κ³Ό κ°λ€.
-
-
ex) 14-6 => 10+4-6 => -6μ νλκ²μ΄ μλλΌ, 6μ λν 10μ 보μμΈ 4λ₯Ό λνλ€. => 4+4
- μ νλ μλ¦Ώμμ μ μλ§μ μ¬μ©ν λλ μμλ₯Ό ννν λ μμ λΆνΈ ννμ μ¬μ©νλ λμ 보μλ₯Ό μ΄μ©ν ννμ μ¬μ©ν μ μλ€.
1μ 보μλ‘ λ°κΎΈλ λ°©λ²(XORμ°μ°)
- λͺ¨λ λΉνΈλ₯Ό λ°λλ‘ λ€μ§λλ€.
8bit κΈ°μ€ ex) +24 => 0001 1000 ex) -24 => 1110 0111
- μμ λ²μ(8λΉνΈ κΈ°μ€): -127 ~ +127
0111 1111 (127) 0111 1110 (126) 0111 1101 (125) ... 0000 0001 (1) 0000 0000 (+0) 1111 1111 (-0) 1111 1110 (-1) ... 1000 0010 (-125) 1000 0001 (-126) 1000 0000 (-127)
μ°μ°
1μ 보μ μ°μ°
- μ¬μ ν λ κ°μ 0(+0, -0)μ΄ μ‘΄μ¬νλ€.
- λ μλ₯Ό λν ν λΉνΈ ν¬κΈ°λ₯Ό μ΄κ³Όν 1 κ°(carry)μ λ€μ 맨 λ€μ λν΄μΌλ§ μ³μ κ°μ΄ λλ€.
βοΈ λ³΄μ(θ£ζΈ) λ 보μ(θ£ζΈ)λ 보좩μ ν΄μ£Όλ μλ₯Ό μλ―Ένλ€. μ΄λ₯Όν λ©΄ 1μ λν 10μ 보μλ 9, 4μ λν 15μ 보μλ 11μ κ°λ μ΄λ€. 1μ λν 2μ 보μλ 1μ΄λ€.
2μ 보μ(Signed 2βs Complement)
- 1μ보μμ 1μ λν κ°.
- μλ°μμ μμλ₯Ό μ μ₯νλ λ°©λ².
- 1μ 보μμ λ¬Έμ μ μ ν΄κ²°νκΈ° μν΄ λ±μ₯ν λ°©λ². (κ³μ° ν 1μ λνλ κ²μ΄ μλ, 미리 1μ λν΄λκ³ κ³μ°)
- μμ 0μ μμ°μΌλ‘μ¨ -128κΉμ§ ννν μ μλ€.
2μ 보μλ‘ λ°κΎΈλ λ°©λ²
case 1) λͺ¨λ λΉνΈλ₯Ό λ°λ κ°(1μ 보μ)μΌλ‘ λ§λ λ€μ 1μ λνλ€.
ex) 0010 1001(+41) 1101 0110(1μ 보μ) + 1 ----------- 1101 0111(-41)
case 2) μ€λ₯Έμͺ½μμλΆν° 1μ μ°Ύλλ€.
- μ°Ύμ 1μ μΌμͺ½νΈμ μλ λͺ¨λ λΉνΈλ₯Ό λ°λ κ°μΌλ‘ λ°κΎΌλ€.
ex) 0010 1001(41) => 1101 0111(-41) ^ ^ ex) 0010 1100(44) => 1101 0100(-44) ^ ^
- μμ λ²μ(8λΉνΈ κΈ°μ€): -128 ~ +127
0111 1111 (127) 0111 1110 (126) 0111 1101 (125) ... 0000 0010 (2) 0000 0001 (1) 0000 0000 (+0) 1111 1111 (-1) 1111 1110 (-2) ... 1000 0011 (-125) 1000 0010 (-126) 1000 0001 (-127) 1000 0000 (-128)
μ°μ°
ex) 10 - 7 = 10 + (-7) = 3 10 => 0000 1010 7 => 0000 0111 -7 => 1111 1000 + 1 = 1111 1001 0000 1010 (10) + 1111 1001 (-7) ----------------- 1 0000 0011 (3) => 8λΉνΈλ₯Ό λμ΄κ°λ κ°μ λ²λ¦°λ€.
- μ₯μ
- μμμ μμμ λ§μ μ΄ κ°λ₯νλ€. β> λ§μ μΌλ‘ λΉΌκΈ°λ₯Ό μνν μ μλ€.
- μμ 0μ΄ μλ€. 0μ λν ννμ΄ ν κ°μ§μ΄λ€.
K-μ΄κ³Ό (Excess-K)
- λΆλ μμμ μ
μ§μλΆ(exponent)
λ₯Ό μ μ₯ν λ μ¬μ©νλ€. - μ€νμ λ°μ΄λ리(offset binary) λλ λ°μ΄μ΄μ€λ νκΈ°λ²(biased representation) μ΄λΌκ³ λ νλ€.
- Kλ₯Ό λ°μ΄μ΄μ€ κ°μ΄λΌ λΆλ₯΄λ©°, νννλ €λ κ°μ λν λ μ¬μ©νλ€.
νννλ €λ κ° + μ΄κ³Ό κ°(K) = κ²°κ³Ό
-
λ°μ΄μ΄μ€ κ°(K)μ ꡬνλ 곡μ: K = \(2^{λΉνΈμ - 1}\)
ex) 8λΉνΈμΌ κ²½μ° β> K = \(2^{8 - 1}\) = \(2^7\) = 128,
κ²°κ³Ό = 128 + κ° 1111 1111 = 128 + 127 1111 1110 = 128 + 126 1111 1101 = 128 + 125 ... 1000 0001 = 128 + 1 1000 0000 = 128 + 0 0111 1111 = 128 + (-1) ... 0000 0010 = 128 + (-126) 0000 0001 = 128 + (-127) 0000 0000 = 128 + (-128)
IEEE-754 λΆλμμμ νμ€
-
K = \(2^{λΉνΈμ - 1}\) - 1
ex) 8λΉνΈμΌ κ²½μ° β> K = \(2^7\) - 1 = 127,
κ²°κ³Ό = 127 + κ° 1111 1111 = 127 + 128 1111 1110 = 127 + 127 1111 1101 = 127 + 126 1111 1100 = 127 + 125 ... 1000 0000 = 127 + 1 0111 1111 = 127 + 0 0111 1110 = 127 + (-1) ... 0000 0010 = 127 + (-125) 0000 0001 = 127 + (-126) 0000 0000 = 127 + (-127)
λ°μ΄μ΄μ€ λ°©μ(Excess-K, IEEE-754)μΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯ν λμ μ΄μ ?
- λͺ¨λ λΉνΈκ° 0μΌ λ μ΅μ κ°μ κ°μ§κ³ , λͺ¨λ λΉνΈκ° 1μΌ λ μ΅λ κ°μ κ°λλ€.
- μ΄λ° μ΄μ λ‘ μμ κ°μμ ν° κ°μΌλ‘ μ λ ¬λλ κ²°κ³Όλ₯Ό λ³λλ€.
- λͺ¨λ λΉνΈκ° μ λ ¬λ μνμ΄κΈ° λλ¬Έμ λΆλμμμ μ΄λ μ μμ΄λ μκ΄μμ΄ κ°μ λΉκ΅ν λ μλκ° λΉ λ₯΄λ€.
λΆνΈ-ν¬κΈ°
,1μ 보μ
,2μ 보μ
μ κ°μ λ°©λ²μΌλ‘ κ°μ ννν κ²½μ°, λΉνΈλ€μ΄ μμ°¨μ μΌλ‘ μ λ ¬λμ§ μλλ€.
μ 리
μ»΄ν¨ν°κ° μ μν λ°μ΄ν°λ₯Ό μ΄λ€μμΌλ‘ μ μ₯νλμ§μ λν΄ μμ보μμ΅λλ€. λ€μ ν¬μ€νΈμμλ μ€μ(λΆλμμμ )λ₯Ό μ μ₯νλ λ°©μμ λν΄ μμλ΄ λλ€.
λκΈλ¨κΈ°κΈ°