programmedlessons.org
Rabu, 12 Juni 2013
Eksponen
Bit ke 23 sampai ke 30 berisi eksponen. Eksponen adalah sebuah integer, tapi bisa negatif, nol atau positif. Kamu mungkin menduga bahwa kita akan menggunakan 8bit integer two komplemen, namun kenyataannya kita menggunakan cara lain.
Eksponen tersusun menggunakan skema integer biased. Integer biased ini secara rekayasa merupakan pembiasan dari integer biasa yang seolah-olah ditambah dengan angka +127 jadi jika angka 0 melalui perhitungan biasa sedang direpresentasikan oleh 8bit maka sebenarnya angka tersebut sedang merepresentasikan angka 127. Angka 128 direpresentasikan dengan eksponen 1; angka 126 direpresentasikan dengan eksponen -1.
kita tentunya sudah membaca tadi bahwa mantissa selalu seolah-olah sudah memiliki "1," di depannya. lalu bagaimana jika kita sedang merepresentasikan pecahan "0,0" ?
Bagaimana Mantissa Berfungsi
Secara angka nol di depan sebuah koma bukanlah angka penting, maka kita selalu mendapati sebuah angka yang diawali dengan 1,
misal kita ingin merepresentasikan sebuah pecahan biner floating point 00011,00101101
angka 0 di depan koma hilangkan menjadi 11,00101101
kemudian majukan koma nya sehingga tepat diantara angka pertama dan kedua sehingga menjadi 1,100101101 x 2^1
karena setiap mantissa selalu direkayasa memiliki angka 1, di depannya sehingga angka tersebut tidak akan masuk ke mantissa, jadi yang ada di mantissa hanyalah angka yang ada di belakang angka 1,
yaitu 1,100101101 menjadi 100101101, ini lah yang akan mengisi mantissa sementara eksponen akan diisi dengan angka 2^1
jadi isi mantissanya adalah 10010110100000000000000
Quest 13: Apakah mantissa selalu 0 atau positif?
Jawab: ya tanda negatif bukanlah bagian dari mantissa
misal kita ingin merepresentasikan sebuah pecahan biner floating point 00011,00101101
angka 0 di depan koma hilangkan menjadi 11,00101101
kemudian majukan koma nya sehingga tepat diantara angka pertama dan kedua sehingga menjadi 1,100101101 x 2^1
karena setiap mantissa selalu direkayasa memiliki angka 1, di depannya sehingga angka tersebut tidak akan masuk ke mantissa, jadi yang ada di mantissa hanyalah angka yang ada di belakang angka 1,
yaitu 1,100101101 menjadi 100101101, ini lah yang akan mengisi mantissa sementara eksponen akan diisi dengan angka 2^1
jadi isi mantissanya adalah 10010110100000000000000
Quest 13: Apakah mantissa selalu 0 atau positif?
Jawab: ya tanda negatif bukanlah bagian dari mantissa
Lebih jauh pada Mantissa
Mantissa merepresentasikan angka dalam basis dua sepanjang 24bit. notasi posisinya seperti berikut ini:
1.xxxxxxxxxxxxxxxxxxxxxxx
di dalam tabel sebelumnya kita sudah melihat bahwa mantissa hanya terdiri dari 23bit yang artinya 1bit tambahan hanyalah rekayasa. Misal untuk angka 1.11110000101101101010001 maka mantissa hanya akan berisi dengan angka 11110000101101101010001.
1.xxxxxxxxxxxxxxxxxxxxxxx
di dalam tabel sebelumnya kita sudah melihat bahwa mantissa hanya terdiri dari 23bit yang artinya 1bit tambahan hanyalah rekayasa. Misal untuk angka 1.11110000101101101010001 maka mantissa hanya akan berisi dengan angka 11110000101101101010001.
IEEE 754 Floating Point
Sebuah single presisi floating point merujuk pada IEEE 754 adalah sejumlah 32bit panjang. Bit-bit ini dibagi-bagi menjadi sejumlah tetap sebagai berikut:
Bit 0 sampai 22 digunakan untuk mantissa; bit 23 sampai 30 digunakan untuk eksponen; dan bit 31 adalah sign bit. Kolom mantissa dan kolom eksponen bekerja seperti bagian yang sama pada notasi ilmiah. Sign bit menjadi tanda untuk keseluruhan notasi apakah angka tersebut 0 yang artinya positif ataukah 1 yang artinya negatif.
Quest 11: kamu telah melihat instruksi bltz yang artinya branch jika sebuah integer 32bit adalah di bawah nol atau angka tersebut negatif. Hal ini bekerja dengan cara dia mengecek bit ke terakhir apakah dia 1 atau 0.
apakah cara yang sama juga berlaku untuk single presisi?
Jawab: Ya
Bit 0 sampai 22 digunakan untuk mantissa; bit 23 sampai 30 digunakan untuk eksponen; dan bit 31 adalah sign bit. Kolom mantissa dan kolom eksponen bekerja seperti bagian yang sama pada notasi ilmiah. Sign bit menjadi tanda untuk keseluruhan notasi apakah angka tersebut 0 yang artinya positif ataukah 1 yang artinya negatif.
Quest 11: kamu telah melihat instruksi bltz yang artinya branch jika sebuah integer 32bit adalah di bawah nol atau angka tersebut negatif. Hal ini bekerja dengan cara dia mengecek bit ke terakhir apakah dia 1 atau 0.
apakah cara yang sama juga berlaku untuk single presisi?
Jawab: Ya
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.
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
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
-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
Langganan:
Komentar (Atom)

