Skip to content
V3.0 // STABLE
LOAD 12%
LAT 24MS
SLA 99.99%
Technical Article

Mendekode IEEE 754: Bilangan Pecahan 32-bit (Floating Point)

4 min read
8 views
computer-sciencearchitecturemath

Pernahkah kamu bertanya-tanya bagaimana komputer, yang hanya memahami angka 0 dan 1, dapat menyimpan bilangan desimal seperti 14.0 atau 3.14? Jawabannya ada pada standar cerdas yang disebut IEEE 754.

Dalam artikel ini, kita akan membedah bagaimana bilangan floating point 32-bit bekerja, dan kita akan mendekode sebuah contoh nyata bersama-sama. Jangan khawatir jika terdengar rumit—kita akan membahasnya langkah demi langkah!

Anatomi Float 32-bit

Bilangan floating point 32-bit dibagi menjadi tiga bagian:

  1. Sign/Tanda (S): 1 bit yang memberi tahu kita apakah bilangan itu positif atau negatif.
  2. Exponent/Eksponen (E): 8 bit yang menentukan skala bilangan (seberapa besar atau kecil angkanya).
  3. Fraction/Fraksi (F): 23 bit yang mewakili digit aktual dari bilangan tersebut (juga disebut Mantissa).

Berikut adalah representasi visual bagaimana 32 bit tersebut disusun:

Live architecture
Analyzing Schema...

Arch Note

Interactive logic enabled. Click components in expanded view for technical service definitions.

Layer.0 / Distributed_System_Viz

(Catatan: Diagram di atas menggunakan sintaks packet dari Mermaid untuk menunjukkan distribusi bit)

Rumus untuk mengubah ini kembali menjadi bilangan desimal adalah:

(-1)^S × 2^(E - 127) × (1 + F)

Mari kita bedah sebuah soal nyata menggunakan rumus ini.

Studi Kasus

Menurut standar IEEE-754, manakah dari pilihan berikut yang merupakan nilai desimal dari bilangan floating point 32-bit di bawah ini? 01000001011000000000000000000000

a) 0.1875 b) 0.4375 c) 6.0 d) 14.0

Mari kita selesaikan langkah demi langkah!

Langkah 1: Pisahkan Bit

Pertama, kita bagi urutan 32-bit menjadi tiga bagian kita:

  • Sign (1 bit): 0
  • Exponent (8 bits): 10000010
  • Fraction (23 bits): 11000000000000000000000

Langkah 2: Tentukan Tanda (S)

Bit yang paling pertama adalah 0.

  • 0 berarti bilangannya adalah positif.
  • 1 berarti bilangannya adalah negatif.

Jadi, S = 0. Di dalam rumus kita, (-1)^0 = 1.

Langkah 3: Hitung Eksponen (E)

8 bit berikutnya adalah 10000010. Kita perlu mengubah bilangan biner ini menjadi desimal.

Ingat bahwa setiap posisi dalam biner mewakili pangkat dari 2:

  • 1 × 2^7 = 128
  • 0 × 2^6 = 0
  • 0 × 2^5 = 0
  • 0 × 2^4 = 0
  • 0 × 2^3 = 0
  • 0 × 2^2 = 0
  • 1 × 2^1 = 2
  • 0 × 2^0 = 0

Jumlahkan semuanya: 128 + 2 = 130. Jadi, E = 130.

Rumus tersebut menggunakan E - 127 (di mana 127 disebut "bias"). Pangkat eksponen aktual kita adalah 130 - 127 = 3. Jadi, kita akan mengalikannya dengan 2^3, yang mana adalah 8.

Langkah 4: Hitung Fraksi (F)

Sisa 23 bit adalah 11000000000000000000000.

Untuk bagian fraksi, kita menghitung pangkat dari 2 ke arah bawah dimulai dari -1:

  • Bit pertama mewakili 2^{-1} (atau 0.5)
  • Bit kedua mewakili 2^{-2} (atau 0.25)
  • Bit ketiga mewakili 2^{-3} (atau 0.125), dan seterusnya.

Fraksi kita dimulai dengan 11 dan sisanya adalah 0:

  • Bit 1 adalah 1 1 × 0.5 = 0.5
  • Bit 2 adalah 1 1 × 0.25 = 0.25
  • Sisanya adalah 0 0

Jumlahkan: F = 0.5 + 0.25 = 0.75.

Rumus menggunakan (1 + F), sehingga kita mendapatkan 1 + 0.75 = 1.75.

Langkah 5: Gabungkan Semuanya

Sekarang kita masukkan nilai-nilai kita ke dalam rumus asli:

(-1)^S × 2^(E - 127) × (1 + F)

  • Bagian Tanda: 1
  • Bagian Eksponen: 2^3 = 8
  • Bagian Fraksi: 1.75

1 × 8 × 1.75 = 14.0

Nilai desimal akhirnya adalah 14.0.

[!TIP] Jawaban: Pilihan yang benar adalah d) 14.0!

Dan begitulah cara komputer menyimpan bilangan desimal! Dengan memecahnya menjadi Sign, Exponent, dan Fraction, sebuah string sederhana dari 1 dan 0 dapat merepresentasikan rentang nilai pecahan yang sangat luas dengan presisi yang luar biasa.