Laman

Senin, 10 Juni 2013

Digit Angka yang Tetap

Tiap-tiap notasi diwakili oleh 8 digit. dua digit digunakan untuk "float" koma desimal. Sisanya enam digit digunakan untuk mewakili angka.

Angka di dalam digit mantissa disebut presisi dari angka floating point. Saat kita mulai membicarakan floating point, presisinya adalah sejumlah bit yang ada di mantissa. Dengan sebuah 32bit single presisi floating point mantissa adalah 24bit. jadi single presisi floating point mempunyai 24bit presisi.

Perhatian: kadang-kadang dalam bahasa yang salah orang-orang menyebutkan bahwa nilai single presisi mempunyai 32bit presisi, tapi ini tidak benar.

Perhatian yang lain: mantissa menggunakan 23bit untuk merepresentasikan presisi 24bit. Trik ini akan dijelaskan selanjutnya.

Quest 10: berapa banyak mantissa yang bisa direpresentasikan oleh single presisi?
Jawab: sebuah mantissa mempunyai 23bit jadi ada sebanyak 2^23 pola yang tersedia.

e

Membuat pangkat dengan cara menulis angka yang kecil di atas angka lainnya tidak cocok dengan program. Sebuah notasi sedikit diubah agar bisa digunakan di komputer baik sebagai input maupun output text.


 1,38502 × 10^+03 =  1,38502e+03

 1,38502 × 10^-03 =  1,38502e-03

-1,38502 × 10^+03 = -1,38502e+03

-1,38502 × 10^-03 = -1,38502e-03

Perhatian: untuk SPIM hanya huruf "e" kecil yang berlaku untuk notasi ini. (beberapa software sistem seperti JAVA memperbolehkan menggunakan huruf besar atau hirif kecil).

Quest 9: Berapa banyak digit kah yang diperlukan untuk notasi di atas? Berapa digit untuk mantissa dan berapa digit untuk eksponen?
Jawab: 8. 6 digit mantisa, 2 digit eksponen

Nilai Negatif

Notasi untuk angka negatif memiliki tanda negatif di depan digit pertama
-1,38502 × 10^03 = -(1,38502 × 10^03) = -1385,02

Notasi untuk angka yang lebih kecil mempunyai dua tanda negatif, satu untuk menegatifkan angka, satu lagi untuk menggerakkan koma pecahan ke kiri.
-1,38502 × 10^-3 = -(1,38502 × 10^-3) = -0,00138502

Eksponen Negatif

Eksponen menunjukkan kelipatan 10 dari mantissa, sejauh mana float menunjukkan koma desimal.

10^+n artinya gerakkan tanda koma ke kanan
10^-n artinya gerakkan tanda koma ke kiri


1,82371 × 10^1 = 1,82371 × 10 = 18.2371 (koma bergerak 1 langkah ke kanan)
1,82371 × 10^-1 = 1,82371 × ,1 = ,182371 (koma bergerak 1 langkah ke kiri)
1,82371 × 10^2 = 1,82371 × 100 = 182.371 (koma bergerak 2 langkah ke kanan)
1,82371 × 10^-2 = 1,82371 × ,01 = ,0182371 (koma bergerak 2 langkah ke kiri)

Quest 7: tulislah 0,000456 dalam notasi ilmiah
Jawab: 0,000456 = 4,56 × 10^-4

Notasi Ilmiah

Untuk mengetasi masalah ini IEEE ( institut Elektrikal dan Elektronik Engineer) membuat sebuah standar untuk floating point. Inilah yang disebut IEEE 754 standar, rilis pada tahun 1985 setelah bertahun-tahun dikembangkan. Semua hardware dan software akhirnya mengikuti standar ini (banyak processor juga support dengan standar lain bagaimanapun juga).

Ide dari floating point muncul dari notasi ilmiah untuk angka. Kamu mungkin pernah melihat ini sebelumnya. Berikut adalah notasi ilmiah untuk angka:
Number in scientific notation.

Mantisa selalu mempunyai koma desimal di antara angka pertama dan kedua. Rumus di atas mempunyai arti:
1,38502 × 1000 = 1385,02

Koma desimal bergerak "float" ke mana dia diartikan. Pengaruhnya adalah mantisa memberikan digitnya sedangkan eksponen mengatakan dimana tanda koma nya seharusnya berada.

Quest 6: tulislah notasi ilmiah dari 243,92
Jawab: 243,92 = 2,4392 × 10^2

Kompabilitas Floating Point

Sampai pada tahun 1985 tiap manufaktur hardware mempunyai jenis floating pointnya sendiri-sendiri. Jeleknya, mesin yang berbeda dari manufaktur yang sama mungkin memiliki floating point yang berbeda! Dan ketika floating tidak support di hardaware, kompiler yang berbeda akan menghasilkan floating point dengan jenis yang berbeda.

Situasi menjadi sangat mengerikan. Mempertimbangkan sebuah tape yang berisi data yang ditulis oleh mainframe IBM. Sekarang tape tersebut harus dibaca oleh minikomputer DEC. Katakanlah bit-bit di dalam tape tersebut bisa dibaca dengan benar. Tapi DEC menggunakan jenis floating point yang berbeda dari IBM.  Menerjemahkan bit-bit tersebut sangatlah susah! Masalah seperti ini yang umumnya disebut "legacy data". NASA memiliki banyak sekali tape dari berbagai misi luar angkasa yang ditulis dalam bermacam-macam format. Sebagian data ini sudah tidak terurus karena kurangnya program yang bisa membacanya.

Quest 5: haruskan sebuah perhitungan angka dijalankan pada dua komputer menghasilkan hasil yang sama?
Jawab: Ya. tapi sebelum digunakannya standar floating point, hal ini tidak menjadi sesuatu yang benar

Floating Point Zaman dulu

Komputer digital pertama (menurut beberapa sumber) yakni Z3, dibuat oleh Konrad Zuse pada tahun 1941 menggunakan representasi floating point. Komputer ini memiliki clock lima sampai sepuluh Hertz dan sebuah memory 64 word 22bit! (mesin pendahulunya Z1 juga menggunakan floating point tapi masih belum bisa disebut sebagai komputer karena susah diprogram).

Komputer zama dulu dibuat untuk melakukan perhitungan sain maupun teknik jadi tidak mengherankan jika penemuan floating poin terjadi pada saat yang sama. Di tahun-tahun berikutnya disadari bahwa komputer menjadi alat yang sangat berguna, dan bukan hanya menjadi kalkulator. Seringkali floating point tidak didukung.

Banyak sekali minikomputer dan microprocessor dulu tidak support floating point pada hardware. Sebagai contoh, chip processor intel sebelum 80486 tidak mendukung floating point secara langsung. Sebuah operasi floating point di dalam program (ditulis dalam C, misalnya) dikompile ke dalam barisan intruksi manipulasi bit   yang membutuhkan operasi-operasi. Komputer graphic maupun teknik seringkali memiliki chip tambahan yang mengoperasikan floating point secara hardware.

Processor MIPS sangatlah kuat untuk floating point, dan telah mendukung standar IEEE dari sejak awal. Chip MIPS seringkali digunakan pada teknik tinggi dan workstation grafis dan sangat terkenal dengan floating pointnya yang cepat.