μ»΄ν¨ν°μμμ λ°μ΄ν° νν
μ»΄ν¨ν°λ μ μ μ₯μΉλ‘ ꡬμ±λμ΄ μμΌλ©°, μ΄ μ μ μ₯μΉλ κΈ°λ³Έμ μΌλ‘ λ κ°μ§ μν(ex. On/Off, μ°Έ/κ±°μ§, 1/0)λ₯Ό ꡬλΆν μ μλ€. μ΄λ¬ν λ κ°μ§ μνλ₯Ό μ΄μ©νμ¬ λ°μ΄ν°λ₯Ό μ²λ¦¬ λ° μ μ₯νκ³ μ, μ»΄ν¨ν°λ λ°μ΄ν°λ₯Ό 2μ§μλ‘ νννκ² λμλ€.
λΉνΈ(Bit, Binary Digit, μ΄μ§μμ νμ리μ)λ μ΄λ¬ν μ΄μ§λ²μ λ¨μλ‘, μ΄μ§μμ 0κ³Ό 1 κ°μλ₯Ό ν΅ν΄ λͺ λΉνΈμΈμ§ μ μ μλ€. μ΄μ§μ 1001μ 4bitμ΄κ³ , μ΄μ§μ 101010μ 6bitμ΄λ€.
λ°μ΄νΈ(Byte)λ λΉνΈ 8κ°λ₯Ό λ¬Άμ λ¨μλ‘, μ΄μ§μ 8μλ¦¬λ‘ ννν μ μλ λ²μ, 28 = 256κ°μ§ λ²μμ λ°μ΄ν°λ₯Ό ννν μ μλ€. μ¦ μ΄μ§μ 11001001μ λΉνΈκ° 8κ°μ΄λ―λ‘, λ°μ΄νΈ 1κ°λ‘ λ³Ό μ μλ€.
μ μμ λΉνΈ νν
λΆνΈ μλ μ μ(Unsigned Integer)
λΆνΈ μλ μ μλ μμλ₯Ό ν¬ν¨νμ§ μκ³ 0κ³Ό μμ μ μλ§μ νννλ€. μ£Όμ΄μ§ λΉνΈ μμ λ°λΌ ννν μ μλ κ°μ λ²μκ° κ²°μ λλ€.
8λΉνΈ(1Byte) : 0 ~ 255 (= 28 - 1)
16λΉνΈ(2Byte) : 0 ~ 65,535 (= 216 - 1)
32λΉνΈ(4Byte) : 0 ~ 4,294,967,295 (= 232 - 1)
64λΉνΈ(8Byte) : 0 ~ 18,446,744,073,709,551,615 (= 264 - 1)
λΆνΈ μλ μ μ(Signed Integer)
λΆνΈ μλ μ μλ μμμ μμλ₯Ό λͺ¨λ ννν μ μλ€. λΆνΈ μλ μ μλ₯Ό νννλ λ°©μμλ λΆνΈ-μ λκ°, 1μ 보μ, 2μ 보μ λ±μ΄ μλ€. κ·Έ μ€μμ μ μΌνκ² 0μ νκ°μ§ λ°©μμΌλ‘λ§ νννκ³ , λ§μ /λΊμ μ°μ°μ΄ λΉκ΅μ κ°λ¨ν΄μ§λ 2μ 보μκ° κ°μ₯ λ리 μ°μΈλ€.
2μ 보μ λ°©μμμλ κ°μ₯ μΌμͺ½ λΉνΈ(Most Significant Bit, MSB)λ₯Ό λΆνΈ λΉνΈλ‘ μ¬μ©νλ€. MSBκ° 0μ΄λ©΄ μμ, 1μ΄λ©΄ μμλ₯Ό λνλΈλ€. μμ ννμ λΆνΈ μλ μ μμ λμΌνκ² ννλλ€. (4λΉνΈλ‘ 5λ₯Ό νννλ©΄, 0101)
2μ 보μ λ°©μμΌλ‘ μμλ₯Ό ννν λλ ν΄λΉ μμμ λΉνΈλ₯Ό λͺ¨λ λ°μ ν μ(1μ 보μ)μ 1μ λνλ€.
2μ 보μλ‘ λΆνΈ μλ μ μλ₯Ό ννν κ²½μ° nλΉνΈλ‘ ννν μ μλ κ°μ λ²μλ μμμ κ²½μ° 0 ~ 2(n-1) - 1
μ΄κ³ , μμλ -2(n-1) ~ -1
μ΄λ€.
μ€μμ λΉνΈ νν
κ³ μ μμμ λ°©μ
μ€μλ₯Ό λΉνΈλ‘ νννλ κ°μ₯ μ¬μ΄ λ°©μμ μ μ λΆλΆκ³Ό μμ λΆλΆμ κ³ μ λ λΉνΈμλ‘ λλμ΄ νννλ κ³ μ μμμ (Fixed-Point) λ°©μμ΄λ€. μ¦, μμμ μ μμΉκ° κ³ μ λμ΄ μμ΄ μ§κ΄μ μΌλ‘ μ€μλ₯Ό ννν μ μλ€.
νμ§λ§ κ³ μ μμμ λ°©μμ ν λΉλ°λ λ©λͺ¨λ¦¬κ° 32λΉνΈλλΌλ μ μλΆλ 15λΉνΈμ΄κΈ° λλ¬Έμ μ΅λλ‘ νν κ°λ₯ν μ«μλ 215-1(32767)μ΄λΌμ κ²¨μ° 4λ§μ λμ΄κ°λ λ©λͺ¨λ¦¬μ μ μ¬ν μκ° μλ€. μ¦, κ³ μ μμμ λ°©μμ νν κ°λ₯ν λ²μκ° λ§€μ° μκ³ , λλΉλλ 곡κ°μ΄ λ§μ΄ μκΈ΄λ€λ λ¨μ μ΄ μ‘΄μ¬νλ€.
λΆλ μμμ λ°©μ
κ³ μ μμμ λ°©μκ³Ό κ°μ κ³΅κ° λλΉλ₯Ό μ€μ΄κ³ ν¨μ¨μ μΈ μ€μ ννμ μν΄ μ»΄ν¨ν°λ μ£Όλ‘ λΆλ μμμ (Floating-Point) λ°©μμ μ£Όλ‘ μ¬μ©νλ€. λΆλ μμμ λ°©μμ μμμ μ΄ λ₯λ₯ λ λ€λλ€λ μλ―Έλ‘, ννν μ μλ κ°μ λ²μλ₯Ό μ΅λν λνκΈ° μν΄ λ±μ₯νκ² λμλ€.
λΆλ μμμ ννμ κ³Όν νκΈ°λ²μ μμ©ν΄μ νκΈ°νλ λ°©μμ΄λ€.
κ³Όν νκΈ°λ²(κ³Όνμ κΈ°μλ², Scientific notation)
10μ§μμ λͺ¨λ μ«μλ₯Ό m × 10nμΌλ‘ νννλ λ°©λ². (μ§μ nμ μ μ, mμ μ€μ)
123.456μ΄ μλ€κ³ ν λ, μ΄ μλ κ³Όν νκΈ°λ²μΌλ‘ μλμ κ°μ΄ ννν μ μλ€.
→ 1.23456 × 102
κ³Όν νκΈ°λ²μ λ°λΌ λΆλ μμμ ννμ μ€μλ₯Ό λΆνΈ(Sign), μ§μ(Exponent), κ°μ(Significand / Mantissa)μ κ°μ μμλ‘ νννλ€.
λΆνΈ : 1λΉνΈλ‘ ννλλ©°, μμ(0)μ μμ(1)λ₯Ό λνλΈλ€.
μ§μ : μμμ μ μμΉλ₯Ό κ°λ¦¬ν€λ μν λ‘, μ κ³±μΉ κ°(μ§μ)μ μ μ₯νλ€.
κ°μ : μ€μ λ‘ μ«μλ₯Ό λνλ΄λ λΆλΆμΌλ‘, μμμ μ΄μ λ° μ΄νμ μ«μλ€μ μ μ₯νλ€.
κ°μ λΆλΆμ ννμ μν΄ μ κ·ν(normalized mantissa)λ₯Ό μ΄μ©νλ€. μ κ·νλ κ°μλ₯Ό 1.xxx... × 2n
νμμΌλ‘ λνλ΄λ κ²μ λ§νλ€. μ κ·νμ κ³Όμ μ λ€μκ³Ό κ°λ€.
1. (2μ§μκ° μλ κ²½μ°) μλ₯Ό 2μ§μλ‘ λ³ννλ€.
2. κ°μλ₯Ό1.xxx..
νμμΌλ‘ ννμ΄ κ°λ₯νλλ‘ μμμ μ μλ¦Ώμλ₯Ό μ‘°μ νλ€.
3. λ°μ΄λΈ μλ¦Ώμλ§νΌ 2nμμ nμ κ°μ κ³μ°νλ€. μ€λ₯Έμͺ½μΌλ‘ λ°μμΌλ©΄ 1μΉΈ λΉ+1
, μΌμͺ½μΌλ‘ λ°μμΌλ©΄, νμΉΈλΉ-1
4. κ°μ ννμμ νμ μΌμ μ리λ 1μ΄ λ μ λ°μ μκΈ° λλ¬Έμ, μ€μ ννμμλ 1μ μλ΅νκ³ μμμ μλ λΆλΆλ§ νννλ€.
μ§μ λΆλΆμ ννμ μν΄μλ bias κ°μ μ¬μ©ν΄μ, μ§μ nμ biasκ°μ λν κ°μ μ΄μ§μλ‘ λ³ννλ€.
bias(νΈν₯) κ°μ μ¬μ©νλ μ΄μ
μ§μλ₯Ό νννλ λ°©μμμ μμ μ§μλ₯Ό μμλ‘ λ³ννμ¬ ν¨κ³Όμ μΌλ‘ νννκΈ° μν¨
λ§μ½ μμ μ§μλ₯Ό μμλ‘ λ³ννμ§ μμΌλ©΄, λ 1λΉνΈλ₯Ό λΆνΈλΉνΈλ‘ μ¬μ©ν΄μΌν΄μ 볡μ‘μ±μ΄ μ¦κ°ν μ μμ.
β μμ μ§μ νν: μ§μκ° 2μΌ κ²½μ° 2 + 127 = 1292 + 127 = 129 = 10000001(2)
β μμ μ§μ νν: μ§μκ° -1μΌ κ²½μ° −1 + 127 = 126 = 01111110(2)
κ°μ₯ λ리 μ¬μ©λλ λΆλ μμμ νν λ°©μμ IEEE 754 νμ€μΌλ‘, ν΄λΉ νμ€μμλ 32λΉνΈμ 64λΉνΈμ λκ°μ§ νμμ μ 곡νλ€. 32λΉνΈ 체κ³λ 32λΉνΈ λ¨μ λ(Single-Precision), 64λΉνΈ 체κ³λ 64λΉνΈ λ°°μ λ(Double-Precision)μ΄λΌκ³ λΆλ₯Έλ€. λ°°μ λλ λΆνΈ 1λΉνΈ, μ§μλΆ 11λΉνΈ, κ°μλΆ 52λΉνΈμ ꡬμ±μ κ°μ§λ©°, bias κ³ μ κ°μ 1023μ΄λΌλ μ°¨μ΄μ μ΄ μλ€.
μ°Έκ³
https://kid.chosun.com/site/data/html_dir/2023/05/11/2023051103355.html
https://inpa.tistory.com/entry/JAVA-β-μ€μ-ννλΆλ-μμμ -μ리-νλμ-μ΄ν΄νκΈ°
λΆλμμμ νν (velog.io)