Rabu, 25 Juli 2018

BILANGAN FLOATING POINT DENGAN FORMAT IEEE

        FLOATING POINT

            Floating-point adalah sebuah bilangan yang digunakan untuk menggambarkan sebuah nilai yang sangat besar atau sangat kecil. Bilangan tersebut dapat diwujudkan dalam notasi ilmiah, yaitu berupa angka pecahan desimal  dikalikan dengan angka 10 pangkat bilagnan tertentu. Bilangan seperti ini dapat direpresentasikan menjadi dua bagian, yaitu bagianmantisa dan bagian eksponen (E).Bagian mantisa menentukan digit dalam angka tersebut, sementara eksponen menentukan nilai berapa besar pangkat pada bagian mantisa tersebut (pada posisi titik desimal). Sebagai contoh, bilangan 314600000 dan bilangan 0.0000451 dapat direpresentasikan dalam bentuk bilangan floating point: 3146E5 dan 451E-7 (artinya 3146 * 10 pangkat 5, dan 451 * 10 pangkat -7). Notasi floating-point dapat digunakan untuk merepresentasikan baik bilangan yang sangat besar (|N| » 0), bilangan yang sangat kecil atau dekat dengan nol (|N| « 1), maupun bilangan yang terdiri dari keduanya. Floating-point membuat proses operasi aritmatika menjadi relatif lebih mudah. Floating-point merepresentasi bilangan nyata dalam bentuk persamaan:
N = m × Re

Dimana:
m merupakan bagian bilangan pecahan yang biasa disebut significand atau mantissa
e adalah bagian bilangan bulat yang biasa disebut exponent
R merupakan basis dari suatu sistem bilangan
·  Mantissa dan eksponen direpresentasikan secara eksplisit dalam komputer. Tetapi basisnya (base) adalah yg digunakan oleh komputer tersebut.
·  Umumnya komputer mengikuti basis 2.
·  Umumnya sebuah bilangan f direpresentasikan sebagai f = m x re di mana m adalah mantissa, r adalah basis dari sistem bilangan dan e adalah eksponen (pangkat dari basis yg digunakan).
·  Format umum bilhttp://blog.ub.ac.id/harim1/files/2012/11/1-300x77.jpgangan floating-point:
·  Semula penggunaan format berbeda antar pabrik komputer untuk merepresentasikan bilangan floating-point. Tetapi saat ini telah digunakan format standar ANSI/IEEE secara luas (format IEEE 754). Sedangkan IBM
·  mempunyai standar khusus.
·  Ada dua format standar IEEE 754 yg dikeluarkan yaitu untuk presisi tunggal (single precision) dan format standar untuk bilangan presisi ganda (double precision).
·  Semula penggunaan format berbeda antar pabrik komputer untuk merepresentasikan bilangan floating-point. Tetapi saat ini telah digunakan format standar ANSI/IEEE secara luas (format IEEE 754). Sedangkan IBM
·  mempunyai standar khusus.
·  Ada dua format standar IEEE 754 yg dikeluarkan yaitu untuk presisi tunggal (single precision) dan format standar untuk bilangan presisi ganda (double precision).


Bagian bilangan pecahan m merupakan p-digit bilangan dengan bentuk (±d.dddd ... dd), dimana semua digit d adalah bilangan bulat antara 0 dan R-1. Jika digit terdepan (sebelak kiri) dari m bukan angka nol, maka bilangan ini dapat dikatakan sebagai normalized.
Ø  Tata Letak penyimpanan
IEEE floating point 754 memiliki tiga komponen dasar: penanda (sign), eksponen, dan mantissa. Mantissa terdiri dari fraksi dan digit utama implisit. Sedangkan basis eksponen bersifat implisit dan tidak perlu disimpan..
o    Bit Penanda (Sign Bit)
Pada bit penanda 0 menunjukkan angka positif, 1 menunjukkan angka negatif. Apa bila membalik nilai bit, maka nilainya juga disesuaikan.
o   Eksponen
Field eksponen digunakan untuk mewakili eksponen positif maupun negatif. Untuk melakukan hal ini, bias ditambahkan ke eksponen yang sebenarnya untuk mendapatkan eksponen yang akan disimpan. Pada IEEE single-precision, nilai biasnya adalah 127. Dengan demikian, artinya eksponen nolnya 127 disimpan di field eksponen. Contohnya apabila nilai yang disimpan 200 maka menunjukkan bahwa eksponennya (200-127) atau sama dengan 73. Sedangkan nilai 8 pada eksponen menunjukkan field eksponen pada single precision adalah 8 bit.  Untuk double precision,  field eksponennya adalah 11 bit, dan memiliki bias 1023.
o   Mantissa
Mantissa, juga dikenal sebagai significand digunakan untuk merepresentasikan precision bit dari suatu angka. Mantissa terdiri dari sebuah bit utama yang bersifat implisit dan fraction bit.
Represensasi bilangan floating-point seringkali dinormalisasi terhadap radixnya,   misalnya 1, 5 × 1044atau 1, 253 × 10 − 36.Format bilangan floating-point biner telah distandarkan oleh IEEE 754-2008 (atau ISO/IEC/IEEE 60559:2011), yaitu meliputi format 16-bit (half), 32-bit (single-precision), 64-bit (double-precision), 80-bit (double-extended) dan 128-bit (quad-precision). Di bab ini hanya dibahas tentang format dasar, yaitu 32-bit dan 64-bit.
A.    BILANGAN FLOATING POINT
1)      Bilangan Floating-Point 32-bit (single-precision)
Format floating-point presisi tunggal adalah format nomor komputer , biasanya menempati 32 bit dalam memori komputer ; itu mewakili rentang nilai numerik dinamis yang luas dengan menggunakan titik radix mengambang . Variabel floating point dapat mewakili rentang angka yang lebih luas daripada variabel titik tetap dengan lebar bit yang sama dengan biaya presisi. Sebuah variabel integer 32-bit bertanda tangan memiliki nilai maksimum 2 31 - 1 = 2,147,483,647, sedangkan variabel floating-point IEEE 754 32-bit memiliki nilai maksimum (2 - 2 −23 ) × 2 127 ≈ 3.402823 × 10 38 . Semua bilangan bulat dengan 6 atau lebih sedikit digit desimal signifikan , dan angka apa pun yang dapat ditulis sebagai 2 n sehingga n adalah bilangan bulat dari -126 hingga 127, dapat dikonversi menjadi nilai floating-point IEEE 754 tanpa kehilangan presisi. Dalam standar IEEE 754-2008 , format basis-2 32-bit secara resmi disebut sebagai binary32 ; itu disebut single di IEEE 754-1985 .
  • 8 bit eksponen (E), dan
  • 23 bit untuk mantisa (M)
http://didik.blog.undip.ac.id/files/2012/06/0_media_DATA_Kuliah-UNDIP_TSK205-SistemDigital____2012_LectureNotes_Images_8_single_precision-300x77.jpg
Format bilangan floating-point 32-bit Figure 0.1
Bit tanda (S) menyatakan bilangan positif jika S=0 dan negatif jika S=1.
Field eksponen adalah radix 2. Nilai eksponen bisa negatif atau positif untuk menyatakan bilangan yang sangat kecil atau sangat besar. Format eksponen yang digunakan adalah excess-127. Nilai 127 ditambahkan dari nilai eksponen sebenarnya (Exp), yaitu Exp = E − 127. Dengan excess-127, nilai E akan selalu positif dengan jangkauan 0 sampai 255.
  • Nilai ekstrem adalah untuk E=0 dan E=255
    • E=0 menyatakan bilangan NOL (jika M = 0) dan subnormal (jika M ≠ 0)
    • E=255 menyatakan bilangan TAK TERHINGGA (jika M = 0) dan NAN/not-a-number (jika M ≠ 0);
  • Nilai normal adalah 1 ≤ E ≤ 254 yang menunjukkan nilai eksponen sebenarnya dari -126 sampai 127
    • Contoh: Emin(1) =  − 126, E(50) =  − 77 dan Emax(254) = 127;
Eksponen (E)
Mantissa=0
Mantissa0
Persamaan
0
0, -0
subnormal
( − 1)S × 0.bit signifikan × 2 − 126
1-254
             Nilai ternormalisasi
( − 1)S × 1.bit signifikan × 2E − 127
255
bukan bilangan (NAN=not-a-number)
Nilai eksponen di format floating-point 32-bit Table 0.1
Saat nilai mantisa (M) dinormalisasi, most significant bit (MSB) selalu 1. Namun, bit MSB ini tidak perlu disertakan secara eksplisit di field mantisa (Tabel 0.1↑). Nilai mantisa yang sebenarnya adalah 1.M, sehingga nilai bilangan floating-pointnya menjadi:
http://didik.blog.undip.ac.id/files/2012/06/single-precision-300x75.png
Di bilangan subnormal, nilai mantisa sebenarnya adalah 0.M, sehingga bilangan floating-pointnya menjadi:
http://didik.blog.undip.ac.id/files/2012/06/subnormal-single-300x72.png
Dengan mantissa 23 bit ini ditambah 1 bit implisit, total presisi dari representasi floating-point 32-bit ini adalah 24 bit atau sekitar 7 digit desimal (yaitu 24 × log10(2) = 7.225).
Dalam pemrograman, suatu bilangan single-precision ini dideklarasikan dengan tipe data float (bahasa C, C++, Java) dan single (Pascal, VB, MATLAB).
float anumber; // 32-bit single precision number
int main(){
anumber = -1.1245;
...
return 0;
}


2)      Bilangan Floating-Point 16-bit (half-precision)
Setengah presisi adalah format nomor komputer floating-point biner yang menempati 16 bit (dua byte dalam komputer modern) dalam memori komputer . Dalam standar IEEE 754-2008 , format basis 16-bit 2 disebut sebagai binary16 . Hal ini dimaksudkan untuk penyimpanan nilai-nilai floating-point dalam aplikasi di mana presisi yang lebih tinggi tidak penting untuk melakukan perhitungan aritmatika. Meskipun implementasi dari floating point Half-precision IEEE relatif baru, beberapa sebelumnya format floating-point 16-bit telah ada termasuk yang dari Hitachi HD61810 DSP [1] tahun 1982, Scott's WIF [2] dan prosesor grafis 3dfx Voodoo .
Format ini digunakan di beberapa lingkungan grafis komputer termasuk OpenEXR , JPEG XR , GIMP , OpenGL , Cg , dan D3DX . Keuntungan lebih dari 8-bit atau bilangan bulat biner 16-bit adalah bahwa rentang dinamis yang meningkat memungkinkan untuk lebih detail untuk dipertahankan dalam sorotan dan bayangan untuk gambar. Keuntungan lebih dari 32-bit format biner presisi tunggal adalah bahwa ia memerlukan setengah penyimpanan dan bandwidth (dengan mengorbankan presisi dan jangkauan).
Standar IEEE 754 menentukan biner16 memiliki format berikut:
Formatnya ditata sebagai berikut:
IEEE 754r Half Floating Point Format.svg
Format diasumsikan memiliki bit prospek implisit dengan nilai 1 kecuali bidang eksponen disimpan dengan semua nol. Jadi hanya 10 bit significand yang muncul dalam format memori tetapi ketelitian totalnya adalah 11 bit. Dalam IEEE 754 bahasa, ada 10 bit significand, tetapi ada 11 bit significand precision (log 10 (2 11 ) ≈ 3.311 digit desimal, atau 4 digit ± sedikit kurang dari 5 unit di tempat terakhir ). Eksponen floating-point biner presisi setengah dikodekan menggunakan representasi offset-biner , dengan nol offset menjadi 15; juga dikenal sebagai bias eksponen dalam standar IEEE 754.
Jadi, seperti yang didefinisikan oleh representasi biner offset, untuk mendapatkan eksponen yang benar, offset dari 15 harus dikurangkan dari eksponen yang disimpan.
Eksponen yang disimpan 00000 2 dan 11111 2 ditafsirkan secara khusus.
Eksponen
Significand = nol
Signifikan dan ≠ nol
Persamaan
00000 2
nol , −0
(−1) signbit × 2 −14 × 0.significantbits 2
00001 2 , ..., 11110 2
nilai normalisasi
(−1) signbit × 2 eksponen − 15 × 1. Bit signifikan 2
11111 2
NaN (tenang, memberi sinyal)
Nilai sangat positif (subnormal) minimum adalah 2 −24 ≈ 5.96 × 10 −8 . Nilai normal positif minimum adalah 2 −14 ≈ 6.10 × 10 −5 . Nilai maksimum yang dapat diwakili adalah (2−2 −10 ) × 2 15 = 65504.
3)      Bilangan Floating-Point 64-bit (Double-precision)
Format floating-point presisi ganda adalah format nomor komputer , biasanya menempati 64 bit dalam memori komputer; itu mewakili rentang nilai numerik dinamis yang luas dengan menggunakan titik radix mengambang . Titik mengambang digunakan untuk merepresentasikan nilai pecahan, atau ketika rentang yang lebih luas dibutuhkan daripada yang disediakan oleh titik tetap (dengan lebar bit yang sama), bahkan jika dengan biaya presisi. Presisi ganda dapat dipilih ketika rentang atau ketepatan presisi tunggal tidak mencukupi. Dalam standar IEEE 754-2008 , format basis-2 64-bit secara resmi disebut sebagai binary64 ; itu disebut ganda di IEEE 754-1985 . IEEE 754 menentukan format floating-point tambahan, termasuk 32-bit presisi presisi base-2 dan, yang lebih baru, basis-10 representasi. Salah satu bahasa.pemrograman pertama yang menyediakan tipe data floating-point presisi tunggal dan ganda adalah Fortran . Sebelum adopsi luas IEEE 754-1985, representasi dan properti dari tipe data floating-point tergantung pada pabrikan komputer dan model komputer, dan pada keputusan yang dibuat oleh pelaksana bahasa pemrograman. Misalnya, tipe data presisi ganda GW-BASIC adalah 64-bit MBF floating-point format. Double-precision binary floating-point adalah format yang umum digunakan pada PC, karena jangkauannya yang lebih luas atas floating point presisi tunggal, terlepas dari kinerja dan biaya bandwidth. Seperti dengan format floating-point presisi tunggal , ia tidak memiliki presisi pada bilangan bulat jika dibandingkan dengan format bilangan bulat dengan ukuran yang sama. Ini umumnya hanya dikenal sebagai ganda . Standar IEEE 754 menetapkan binari64 memiliki:
Tanda bit menentukan tanda nomor (termasuk ketika angka ini adalah nol, yang ditandatangani ).
Bidang eksponen dapat ditafsirkan sebagai bilangan bulat bertanda 11-bit dari −1024 hingga 1023 ( pelengkap 2 ) atau bilangan bulat 11-bit unsigned dari 0 hingga 2047, yang merupakan bentuk bias yang diterima dalam definisi biner64 IEEE 754. Jika format integer unsigned digunakan, nilai eksponen yang digunakan dalam aritmatika adalah eksponen yang digeser oleh bias - untuk kasus biner64 IEEE 754, nilai eksponen 1023 menunjukkan nol yang sebenarnya (yaitu untuk 2 e - 1023 menjadi satu, e harus 1023). Eksponen berkisar dari −1022 hingga +1023 karena eksponen −1023 (semua 0s) dan +1024 (semua 1s) dicadangkan untuk nomor khusus.
The 53-bit significand presisi memberikan dari 15 hingga 17 presisi digit desimal yang signifikan (2 −53 ≈ 1.11 × 10 −16 ). Jika string desimal dengan paling banyak 15 digit signifikan diubah menjadi representasi presisi ganda IEEE 754, dan kemudian dikonversi kembali ke string desimal dengan jumlah digit yang sama, hasil akhir harus cocok dengan string asli. Jika nomor presisi ganda IEEE 754 diubah menjadi string desimal dengan setidaknya 17 digit signifikan, dan kemudian diubah kembali ke representasi presisi ganda, hasil akhir harus sesuai dengan nomor asli. [1]
Format ditulis dengan significand yang memiliki bit integer implisit dari nilai 1 (kecuali untuk data khusus, lihat pengkodean eksponen di bawah). Dengan 52 bit dari pecahan significand muncul dalam format memori, maka kepresisian total adalah 53 bit (kira-kira 16 digit desimal, 53 log 10 (2) ≈ 15.955). Bit-bit tersebut ditata sebagai berikut:
IEEE 754 Double Floating Point Format.svg ( - 1 ) tanda ( 1 + saya = 1 52 b 52 - saya 2 - saya ) × 2 e - 1023 {\ displaystyle (-1) ^ {\ text {sign}} \ left (1+ \ sum _ {i = 1} ^ {52} b_ {52-i} 2 ^ {- i} \ right) \ kali 2 ^ {e-1023}}
Antara 2 52 = 4,503,599,627,370,496 dan 2 53 = 9,007,199,254,740,992, jumlah yang dapat diwakilkan adalah bilangan bulat. Untuk rentang berikutnya, dari 2 53 hingga 2 54 , semuanya dikalikan dengan 2, jadi nomor yang diwakilkan adalah yang genap, dll. Sebaliknya, untuk rentang sebelumnya dari 2 51 hingga 2 52 , jaraknya adalah 0,5, dll. Jarak sebagai pecahan dari angka dalam kisaran dari 2 n ke 2 n +1 adalah 2 n − 52 . Kesalahan pembulatan relatif maksimum ketika pembulatan angka ke nomor representabel terdekat ( mesin epsilon ) adalah 2 −53 . Lebar 11 bit dari eksponen memungkinkan representasi angka antara 10 −308 dan 10 308 , dengan ketepatan desimal 15-17 angka penuh. Dengan mengorbankan presisi, representasi subnormal memungkinkan nilai yang lebih kecil hingga sekitar 5 × 10 −324 .

Nilai riil diasumsikan oleh datum presisi ganda 64-bit yang diberikan dengan eksponen bias yang diberikan e {\ displaystyle e}dan fraksi 52-bit
Captureq.PNG
4)      Bilangan Floating-Point 80-bit (Extended-precision)
Format x86 extended precision adalah format 80-bit yang pertama kali diimplementasikan pada coprosesor matematika 8087 Intel dan didukung oleh semua prosesor yang didasarkan pada desain x86 yang menggabungkan unit titik-mengambang (FPU). Format 80-bit ini menggunakan satu bit untuk tanda significand, 15 bit untuk bidang eksponen (yaitu rentang yang sama seperti format bit-bit presisi IEEE 754 128-bit) dan 64 bit untuk significand. Bidang eksponen bias oleh 16383, yang berarti bahwa 16383 harus dikurangkan dari nilai dalam bidang eksponen untuk menghitung daya aktual 2. [18] Nilai bidang eksponen 32767 (semua lima belas bit 1 ) dicadangkan untuk memungkinkan representasi keadaan khusus seperti infinity dan Not a Number . Jika bidang eksponen nol, nilainya adalah angka denormal dan eksponen 2 adalah −16382. [19]
X86 Extended Floating Point Format.svg
Dalam tabel berikut, " s " adalah nilai dari bit tanda (0 berarti positif, 1 berarti negatif), " e " adalah nilai bidang eksponen yang ditafsirkan sebagai bilangan bulat positif, dan " m " adalah arti dan ditafsirkan sebagai bilangan biner positif di mana titik biner terletak di antara bit 63 dan 62. Bidang " m " adalah kombinasi dari bagian bilangan bulat dan fraksi dalam diagram di atas.
Interpretasi bidang nilai Diperpanjang x86 Diperpanjang
Eksponen
Significand
Berarti
Semua Zero
Bit 63
Bits 62-0
Nol
Nol
Nol. Tanda bit memberi tanda nol.
Bukan nol
Denormal. Nilainya adalah (−1) s × m × 2 −16382
Satu
Apa pun
Pseudo Denormal. The 80387 dan kemudian benar menafsirkan nilai ini tetapi tidak akan menghasilkannya. Nilainya adalah (−1) s × m × 2 −16382
Semua orang
Bits 63,62
Bits 61-0
00
Nol
Pseudo-Infinity. Tanda itu memberi tanda ketidakterbatasan. The 8087 dan 80287 memperlakukan ini sebagai Infinity. 80387 dan kemudian memperlakukan ini sebagai operan yang tidak valid.
Bukan nol
Pseudo Bukan Angka. Tanda itu tidak berarti. 8087 dan 80287 memperlakukan ini sebagai Memberi Sinyal Bukan Nomor. 80387 dan kemudian memperlakukan ini sebagai operan yang tidak valid.
01
Apa pun
Pseudo Bukan Angka. Tanda itu tidak berarti. 8087 dan 80287 memperlakukan ini sebagai Memberi Sinyal Bukan Nomor. 80387 dan kemudian memperlakukan ini sebagai operan yang tidak valid.
10
Nol
Infinity. Tanda itu memberi tanda ketidakterbatasan. 8087 dan 80287 memperlakukan ini sebagai Memberi Sinyal Bukan Nomor. Para koprosesor 8087 dan 80287 menggunakan representasi pseudo-infinity untuk infinitas.
Bukan nol
Signaling Not a Number, bit tanda tidak ada artinya.
11
Nol
Floating-point Indefinite, hasil dari perhitungan tidak valid seperti akar kuadrat dari angka negatif, logaritma dari angka negatif, 0/0, infinity / infinity, infinity times 0, dan lain-lain ketika prosesor telah dikonfigurasi untuk tidak menghasilkan pengecualian untuk operan tidak valid. Tanda itu tidak berarti. Ini adalah kasus khusus dari Tenang Bukan Nomor.
Bukan nol
Tenang Bukan Nomor, sedikit tanda tidak ada artinya. 8087 dan 80287 memperlakukan ini sebagai Memberi Sinyal Bukan Nomor.
Semua nilai lainnya
Bit 63
Bits 62-0
Nol
Apa pun
Tidak normal. Hanya dihasilkan pada 8087 dan 80287. 80387 dan kemudian memperlakukan ini sebagai operan yang tidak valid. Nilainya adalah (−1) s × m × 2 e −16383
Satu
Apa pun
Nilai normalisasi. Nilainya adalah (−1) s × m × 2 e −16383
Berbeda dengan format single dan double-precision , format ini tidak menggunakan bit implisit / tersembunyi . Sebaliknya, bit 63 berisi bagian integer dari significand dan bit 62-0 memegang bagian pecahan. Bit 63 akan menjadi 1 pada semua angka yang dinormalisasi.
Contoh penting dari kebutuhan minimum 64 bit presisi dalam arti format perpanjangan yang diperluas adalah kebutuhan untuk menghindari kehilangan presisi ketika melakukan eksponensial pada nilai presisi ganda . Unit floating-point x86 tidak memberikan instruksi yang secara langsung melakukan eksponensial . Sebaliknya, mereka menyediakan serangkaian instruksi yang dapat digunakan program secara berurutan untuk melakukan eksponensial menggunakan persamaan:
Capturejhu.PNG
Untuk menghindari kehilangan presisi, hasil antara " log 2 x " dan " y log 2 x " harus dihitung dengan presisi yang jauh lebih tinggi karena secara efektif baik eksponen dan bidang significand dari x harus sesuai dengan bidang significand dari hasil antara . Selanjutnya bidang significand dari hasil antara dibagi antara eksponen dan significand bidang hasil akhir ketika 2 hasil menengah dihitung. Diskusi berikut menjelaskan persyaratan ini secara lebih rinci.
Nilai presisi ganda IEEE 754 dapat direpresentasikan sebagai:
dtr.PNG
di mana s adalah tanda eksponen (baik 0 atau 1), E adalah eksponen tidak bias yang merupakan bilangan bulat yang berkisar dari 0 hingga 1023, dan M adalah significand yang merupakan nilai 53-bit yang jatuh dalam kisaran 1 ≤ M <2 . Angka negatif dan nol dapat diabaikan karena logaritma nilai-nilai ini tidak terdefinisi. Untuk tujuan diskusi ini, M tidak memiliki 53 bit presisi karena dibatasi lebih besar dari atau sama dengan satu, yaitu bit yang tersembunyi tidak diperhitungkan terhadap presisi (Perhatikan bahwa dalam situasi di mana M kurang dari 1, nilainya adalah sebenarnya denormal dan karena itu mungkin telah mengalami kehilangan presisi. Situasi ini berada di luar cakupan artikel ini). Mengambil log dari representasi ini dari nomor presisi ganda dan menyederhanakan hasil sebagai berikut:
hnj.PNG
Hasil ini menunjukkan bahwa ketika mengambil basis-2 logaritma angka, tanda eksponen nilai asli menjadi tanda logaritma, eksponen nilai asli menjadi bagian integer dari significand dari logaritma, dan significand dari nilai asli diubah menjadi bagian pecahan dari significand dari logaritma. Karena E adalah bilangan bulat dalam rentang 0 hingga 1023, hingga 10 bit di sebelah kiri titik radix diperlukan untuk mewakili bagian bilangan bulat dari logaritma. Karena M jatuh dalam kisaran 1 ≤ M <2 , nilai log 2 M akan jatuh dalam kisaran 0 ≤ log 2 M <1 jadi setidaknya 52 bit diperlukan di sebelah kanan titik radix untuk mewakili bagian pecahan dari logaritma. Menggabungkan 10 bit di sebelah kiri titik radix dengan 52 bit di sebelah kanan titik radix berarti bahwa bagian penting dari logaritma harus dihitung setidaknya 62 bit presisi. Pada prakteknya nilai M kurang darir.PNG membutuhkan 53 bit di sebelah kanan titik radix dan nilai-nilai M kurang darief.PNG membutuhkan 54 bit di sebelah kanan titik radix untuk menghindari kehilangan presisi. Dengan menyeimbangkan kebutuhan ini untuk presisi tambahan di sebelah kanan titik radix, eksponen kurang dari 512 hanya membutuhkan 9 bit di sebelah kiri titik radix dan eksponen kurang dari 256 hanya membutuhkan 8 bit di sebelah kiri titik radix.
Bagian terakhir dari perhitungan eksponensial adalah menghitung 2 hasil antara . "Hasil antara" terdiri dari bagian integer " I " ditambahkan ke bagian pecahan " F ". Jika hasil antara negatif maka sedikit penyesuaian diperlukan untuk mendapatkan bagian pecahan positif karena kedua " I " dan " F " adalah angka negatif.
Untuk hasil antara positif:
kl.PNG


Untuk hasil antara negativedg.PNG
Dengan demikian bagian bilangan bulat dari hasil antara (" I " atau " I -1 ") ditambah bias menjadi eksponen hasil akhir dan mengubah bagian pecahan positif dari hasil antara: 2 F atau 2 1+ F menjadi signifikanand dari hasil akhir. Untuk memasok 52 bit presisi ke hasil akhir, bagian pecahan positif harus dipertahankan setidaknya 52 bit. Kesimpulannya, jumlah yang tepat dari bit presisi yang diperlukan dalam significand dari hasil antara agak bergantung data tetapi 64 bit cukup untuk menghindari kehilangan presisi dalam sebagian besar perhitungan eksponensialasi yang melibatkan nomor presisi ganda .
Jumlah bit yang diperlukan untuk eksponen format presisi diperpanjang mengikuti dari persyaratan bahwa produk dari dua nomor presisi ganda tidak boleh meluap saat dihitung dengan menggunakan format diperpanjang. Eksponen yang mungkin terbesar dari nilai presisi ganda adalah 1023 sehingga eksponen produk terbesar yang mungkin dari dua nomor presisi ganda adalah 2047 (nilai 11-bit). Menambahkan dalam bias ke akun untuk eksponen negatif berarti bahwa bidang eksponen harus setidaknya 12 bit lebar.
Menggabungkan persyaratan ini: 1 bit untuk tanda, 12 bit untuk eksponen bias, dan 64 bit untuk significand berarti bahwa format presisi diperpanjang akan membutuhkan setidaknya 77 bit. Pertimbangan teknik menghasilkan definisi akhir dari format 80-bit (khususnya standar IEEE 754 membutuhkan rentang eksponen dari format presisi diperpanjang untuk mencocokkan format format terbesar, quad , presisi berikutnya yaitu 15 bit)
5)      Bilangan Floating-Point 128-bit (Quad-precision)
presisi quadruple (atau presisi quad ) adalah format nomor komputer bilangan floating-point- bin yang menempati 16 byte (128 bit) dengan presisi lebih dari dua kali lipat presisi ganda 53-bit. Presisi quadruple 128-bit ini dirancang tidak hanya untuk aplikasi yang membutuhkan hasil yang lebih tinggi dari presisi ganda, [1] tetapi juga, sebagai fungsi utama, untuk memungkinkan penghitungan hasil presisi ganda lebih andal dan akurat dengan meminimalkan overflow dan pembulatan kesalahan dalam perhitungan menengah dan variabel awal. William Kahan , arsitek utama standar floating point standar IEEE-754 asli mencatat, "Untuk saat ini format Extended 10-byte adalah kompromi yang dapat ditoleransi antara nilai aritmatika ekstra-tepat dan harga penerapannya untuk berjalan cepat; segera dua lebih banyak byte presisi akan menjadi lumayan, dan akhirnya format 16-byte ... Itu jenis evolusi bertahap menuju presisi yang lebih luas sudah terlihat ketika Standar IEEE 754 untuk Aritmatika Titik-mengambang dibingkai.  Dalam IEEE 754-2008 format basis-2 128-bit secara resmi disebut sebagai binary128 .
Standar IEEE 754 menetapkan biner128 memiliki:
Ini memberikan dari 33 hingga 36 angka presisi desimal yang signifikan. Jika string desimal dengan paling banyak 33 digit signifikan diubah menjadi representasi presisi-empat kali lipat IEEE 754, dan kemudian dikonversi kembali ke string desimal dengan jumlah digit yang sama, hasil akhir harus cocok dengan string asli. Jika jumlah presisi-quadiffle IEEE 754 diubah menjadi string desimal dengan setidaknya 36 digit signifikan, dan kemudian diubah kembali ke representasi presisi-quadruple, hasil akhir harus sesuai dengan angka aslinya. [3]
Format ditulis dengan bit prospek implisit dengan nilai 1 kecuali eksponen disimpan dengan semua nol. Jadi hanya 112 bit significand yang muncul dalam format memori, tetapi ketepatan totalnya adalah 113 bit (sekitar 34 digit desimal: log 10 (2 113 ) ≈ 34.016 ). Bit-bit tersebut ditata sebagai:
Tanda sedikit, eksponen 15-bit, dan significand 112-bit
A binary256 akan memiliki presisi yang signifikan dari 237 bit (sekitar 71 digit desimal) dan bias eksponensial 262143. Ekspektasi floating-point biner presisi-empat kali dikodekan menggunakan representasi biner offset , dengan titik nol offset menjadi 16383; ini juga dikenal sebagai bias eksponen dalam standar IEEE 754.
  • E min = 0001 16 - 3FFF 16 = −16382
  • E maks = 7FFE 16 - 3FFF 16 = 16383
  • Prediksi eksponen = 3FFF 16 = 16383
Jadi, seperti yang didefinisikan oleh representasi biner offset, untuk mendapatkan eksponen yang benar, offset 16383 harus dikurangkan dari eksponen yang disimpan.
Eksponen yang disimpan 0000 16 dan 7FFF 16 ditafsirkan secara khusus.
Eksponen
Signifikan dan nol
Signifikan dan bukan nol
Persamaan
0000 16
0 , −0
(−1) signbit × 2 −16382 × 0.tanda khusus dan 2
0001 16 , ..., 7FFE 16
nilai normalisasi
(−1) signbit × 2 exponentbits 2 - 16383 × 1.significandbits 2
7FFF 16
±
NaN (tenang, memberi sinyal)
Nilai sangat positif (subnormal) minimum adalah 2 −16494 ≈ 10 −4965 dan memiliki presisi hanya satu bit. Nilai normal positif minimum adalah 2 −163823.3621 × 10 −4932 dan memiliki presisi 113 bit, yaitu ± 2 −16494 juga. Nilai maksimum yang dapat diwakili adalah 2 16384 - 2 162711,1897 × 10 4932 .


6)      Format IBM floating point
Angka floating point IBM diwakili oleh satu bit untuk tanda (S), 7 bit untuk eksponen, dan 24 bit untuk pecahan. Eksponen adalah basis 16 (bukan 2), dan memiliki bias 64. Karena basis 16, fraksi mungkin memiliki hingga tiga nol terkemuka. Dengan cara ini, beberapa nilai eksponensial dapat diasumsikan oleh fraksi, meningkatkan jangkauannya, dengan biaya presisi tertentu. Normalisasi ke bit terkemuka tidak mungkin dilakukan. Angka titik mengambang tidak memiliki pelengkap (bukan komplemen satu atau dua). Mereka dalam format tanda-besarnya (tanda yang sedikit 31). Semua format floating-point IBM memiliki 7 bit eksponen dengan bias 64. Kisaran normal dari nomor yang dapat diwakili adalah dari 16 −65 hingga 16 63 (sekitar 5.39761 × 10 −79 hingga 7.237005 × 10 75 ). Angka tersebut direpresentasikan sebagai rumus berikut: (−1) tanda × 0. significand × 16 eksponen − 64 .
Ø  KETEPATAN TUNGGAL
ditunjukkan di bawah ini:
IBM 32-Bit Floating Point Format
S
Eksponen
Pecahan (Catatan: tiga bit paling signifikan [23, 22, dan 21] mungkin semuanya nol).
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Dalam format ini bit awal tidak ditekan, dan titik radix diatur ke kiri mantissa dengan penambahan sebesar 4 bit. Karena basisnya adalah 16, eksponen dalam bentuk ini kira-kira dua kali lebih besar dari yang setara dalam IEEE 754, untuk memiliki kisaran eksponen yang sama dalam biner, diperlukan 9 bit eksponen.

Angka terbesar yang dapat diwakilkan

S
Exp
Pecahan
0
111 1111
1111 1111 1111 1111 1111 1111
Angka yang diwakili adalah + 0,FFFFFF 16 × 16 127 - 64 = (1 - 16 −6 ) × 16 63 ≈ +7.2370051 × 10 75

Bilangan normalized positif terkecil

S
Exp
Pecahan
0
000 0000
0001 0000 0000 0000 0000 0000
Angka yang diwakili adalah +0.1 16 × 16 0 - 64 = 16 −1 × 16 −64 ≈ +5.397605 × 10 −79

Nol

S
Exp
Pecahan
0
000 0000
0000 0000 0000 0000 0000 0000
Nol (0,0) direpresentasikan dalam bentuk dinormalkan sebagai semua bit nol, yang secara aritmatik nilainya +0,0 16 × 16 0 - 64 = +0 × 16 −64 ≈ + 0,000000 × 10 −79 = 0. Diberikan signifikansi semua- bit nol, kombinasi bit tanda positif atau negatif dan non-zero bias eksponen akan menghasilkan nilai yang secara aritmatik sama dengan nol.





( - 1 ) tanda ( 1 b 51 b 50 . . . b 0 ) 2 × 2 e - 1023 {\ displaystyle (-1) ^ {\ text {sign}} (1.b_ {51} b_ {50} ... b_ {0}) _ {2} \ times 2 ^ {e-1023}} (-1) ^ {\ text {sign}} (1.b_ {51} b_ {50} ... b_ {0}) _ {2} \ times 2 ^ {e-1023}

BAB 3 PROFESI DI BIDANG TEKNOLOGI INFORMASI

BAB 3 PROFESI DI BIDANG TEKNOLOGI INFORMASI Sebelum kita melihat lebih jauh tentang profesi di bidang teknologi informasi, pertanyaa...