Bilangan
Floating Point
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
e adalah bagian bilangan bulat yang biasa disebut exponent
R merupakan basis dari suatu sistem bilangan
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.
Format Bilangan
Floating-Point
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). Pada artikel ini hanya akan dibahas tentang format dasar, yaitu 32-bit dan 64-bit.
1. Bilangan Floating-Point 32-bit (single-precision)
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). Pada artikel ini hanya akan dibahas tentang format dasar, yaitu 32-bit dan 64-bit.
1. Bilangan Floating-Point 32-bit (single-precision)
Bilangan floating-point 32-bit tersusun atas:
• 1 bit tanda (S)
• 8 bit eksponen (E)
• 23 bit mantisa (M)
Bit tanda (S) menyatakan bilangan positif jika S = 0 dan negatif jika S = 1. Field eksponen adalah basis 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.
Tabel nilai
eksponen di format floating-point 32-bit
|
|||
Eksponen (E)
|
Mantissa = 0
|
Mantissa ≠ 0
|
Persamaan
|
0
|
0, -0
|
Subnormal
|
(−1)S × 0.bit
signifikan × 2−126
|
1-254
|
Nilai ternormalisasi
|
(−1)S × 0.bit signifikan × 2E−127
|
|
255
|
∞
|
Bukan bilangan
(NAN=not-a-number) |
Saat nilai mantissa (M) dinormalisasi, most significant bit (MSB) selalu 1. Namun, bit MSB ini tidak perlu disertakan secara eksplisit di field mantisa (Tabel diatas). Nilai mantissa yang sebenarnya adalah 1.M, sehingga nilai bilangan floating-pointnya menjadi:
Di bilangan subnormal, nilai mantissa sebenarnya adalah 0.M, sehingga bilangan floating-pointnya menjadi:
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 bahasa pemrograman, suatu bilangan single-precision ini dideklarasikan dengan tipe data float (C, C++, Java) atau single (Pascal, VB, MATLAB).
2. Bilangan Floating-Point 64-bit (double-precision)
Bilangan floating-point 64-bit tersusun atas:
• 1 bit tanda (S)
• 11 bit eksponen (E)
• 52 bit mantisa (M)
Seperti halnya dengan bilangan single-precission, bit tanda (S) menyatakan bilangan positif jika S = 0 dan negatif jika S = 1. Field eksponen adalah basis 2. Nilai eksponen bisa negatif atau positif untuk menyatakan bilangan yang sangat kecil atau sangat besar. Format eksponen yang digunakan adalah excess-1023. Nilai 1023 ditambahkan dari nilai eksponen sebenarnya (Exp), yaitu Exp = E − 1023. Dengan excess-1023, nilai E akan selalu positif dengan jangkauan 0 sampai 2047.
Nilai ekstrem adalah untuk E = 0 dan E = 2047:
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 ≤ 2047 yang menunjukkan nilai eksponen sebenarnya dari -1022 sampai 1023. Contoh: Emin(1) = −1022, E(100) = −923, dan Emax(254) = 1023.
Tabel nilai
eksponen di format floating-point 64-bit
|
|||
Eksponen (E)
|
Mantissa = 0
|
Mantissa ≠ 0
|
Persamaan
|
0
|
0, -0
|
Subnormal
|
(−1)S × 0.bit
signifikan × 2−1022
|
1-2046
|
Nilai ternormalisasi
|
(−1)S × 0.bit signifikan × 2E−1023
|
|
2047
|
∞
|
Bukan bilangan
(NAN=not-a-number) |
Nilai mantisa (M) dinormalisasi, yang berarti most significant bit (MSB) selalu 1. Bit MSB ini tidak perlu disertakan secara eksplisit di field mantisa. Nilai mantisa sebenarnya adalah 1.M, sehingga nilai bilangan floating-pointnya menjadi:
Dengan mantissa 52 bit ini ditambah 1 bit implisit, total presisi dari representasi floating-point 32-bit ini adalah 53 bit atau sekitar 16 digit desimal (yaitu 53 × log10(2) = 15.955). Dalam pemrograman, suatu bilangan double-precision ini dideklarasikan dengan tipe data double (C, C++, Java).
•
REPRESENTASI
BILANGAN FIXED-POINT
Utk representasi bilangan fixed-point
diperlukan :
a.
lokasi
atau register penyimpanan computer yg ukurannya memadai utk menyimpan seluruh
digit bilangan
b.
kemungkinan
utk menjaga track tempat beradanya point tersebut
contoh:
contoh desimal utk representasi 5 digit. Jika diasumsikan posisi
point adalah :
Maka :
0
|
1
|
3
|
7
|
5
|
Merepresentasikan
13.75
|
3 klasifikasi dasar representasi fixed-point
a. representasi mid-point
dimana
terdapat digit baik sebelum dan sesudah point tersebut
b. representasi integer
dimana
tidak terdapat digit setelah point desimal
c. representasi pecahan
dimana
tidak ada digit sebelum point desimal
•
REPRESENTASI
BILANGAN FLOATING-POINT
Utk merepresentasikan floating-point
diperlukan :
a. lokasi atau register penyimpanan
computer dgn ukuran memadai utk menyimpan semua digit signifikan dari bilangan
tersebut
b. ruang penyimpanan tambahan utk
menyimpan posisi ppoint tersebut, ruang tambahan ini biasanya berada di dalam
lokasi yg sama atau terpisah.
Contoh :
•
Desimal dgn mantisa 5 digit dan eksponen 3 digit
Mantissa
|
Eksponen
|
|||||||
1
|
3
|
7
|
5
|
0
|
0
|
0
|
2
|
.13750*102 = 1.375
|
3
|
8
|
6
|
2
|
4
|
0
|
0
|
3
|
.38624*103 = 386.24
|
•
Biner dgn 12 bit dan komplemen duaan utk nilai negatifnya
mantissa
|
eksponen
|
|||||||||||
Sign
|
fraction
|
|||||||||||
0
|
1
|
1
|
0
|
1
|
1
|
1
|
0
|
0
|
1
|
0
|
0
|
.1101112*24 = 1101.112 = 13.7510
|
1
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
-.110112*24 = -1101.112
= -13.7510
|
Bentuk umum n = f . re
Dimana :
n : bilangan
f
: mantissa,
pecahan yg kadang-kadang disebut argument
R : radiks atau base
e : exponent, merupakan integer yg
kadang-kadang disebut characteristic
• MEMBANDINGKAN FIXED-POINT DAN
FLOATING-POINT
1. komputer dapat menjalankan aritmatika
fixed-point lebih cepat daripada aritmatika floating-point.
2. representasi fixed-point membatasi
jangkauan dan skala bilangan yg sedang direpresentasikan.
3. representasi floating-point memberikan
fleksibilitas yg lebih besar dalam jangkauan dan skalanya, ini biasanya
mengurangi kecepata.
• ARITMATIKA FIXED-POINT
Register 8 bit
menyangga bilangan dalam bentuk komplemen duaan dgn bit paling kiri sebagai bit
sign. Bilangan positif
dan negatif maksimum dan minimum direpresentasikan. Disini bisa
diperoleh keakuratan 7 bit.
Contoh : Representasi integer
Sign bit
|
Representasi
|
Value
|
keterangan
|
||||||||
0
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
27 – 1 = 127
|
Maksimum positif
|
||
1
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
-27 = .128
|
Most negatif
|
||
OVERFLOW
DAN UNDERFLOW
|
|||||||||||
OVERFLOW
|
:
|
hasil operasi aritmatika terlalu besar utk disimpan dalam lokasi
yg dialokasikan untuknya.
UNDERFLOW : Hasil tersebut terlalu kecil utk disimpan dalam lokasi yg
dialokasikan untuknya.
MENDETEKSI OVERFLOW
a. menggunakan bit ekstra yyg ditambahkan ke bagian kiri dari bit
sign.
i.
Bit ekstra di set
ke nilai yg sama seperti bit sign sebelum penambahan /pengurangan
ii.
Bilangan yg telah dimodifikasi ditambahkan/dikurangi
iii.
Jika bit ekstra dan bit sign berbeda setelah operasi, maka telah terjadi
overflow
b. Metode lain, dimana tidak menggunakan bit ekstra
i.
Menggunakan ADD
jika sign berbeda, dan SUBSTRACT jika signnya sama, maka overflow tidak terjadi
ii.
Utk A + B jika
sign(A) = sign(B) maka hasilnya berupa sign(A) Utk A - B jika sign(A) ≠ sign(B)
maka hasilnya sign(A)
Sign yg salah
menunjukkan overflow
Contoh :
a
|
Ekstra bit
|
Sign bit
|
Binary SUM
|
Nilai desimal
|
||||||||||
0
|
0
|
1
|
1
|
0
|
0
|
12
|
||||||||
0
|
0
|
0
|
0
|
1
|
1
|
3
|
||||||||
0
|
0
|
1
|
1
|
1
|
1
|
15
|
||||||||
0
|
0
|
Bit sama Æ
|
tidak overflow
|
|||||||||||
b
|
Ekstra bit
|
Sign bit
|
Binary SUM
|
Nilai desimal
|
||||||||||
0
|
0
|
1
|
1
|
0
|
0
|
12
|
||||||||
0
|
0
|
0
|
1
|
1
|
0
|
6
|
||||||||
0
|
1
|
0
|
0
|
1
|
0
|
18
|
||||||||
0
|
≠
|
1
|
Bit berbeda
|
Æ overflow
|
PRESISI GANDA
Salah satu cara mengurangi overflow dgn meningkatkan panjang
penyimpanan yg dialokasikan utk setiap representasi bilangan. Jika 1 lokasi
dalam memori panjangnya tidak cukup maka 2 lokasi yg bersebelahan dapat digunakan.
Bilangan yg disimpan dgn cara ini disebut double precision number atau
double length number
ARITMATIKA PRESISI GANDA
Aritmatika yg menggunakan bilangan presisi ganda. Lebih
lamban namun sering digunakan karena mesin dgn word yg lebih panjang lebiih
mahal.
Aritmatika Floating Point
Dalam komputasi , floating
point aritmatika adalah aritmatika dengan menggunakan representasi
rumus bilangan real sebagai
perkiraan sehingga dapat mendukung trade-off antara range
dan precision . Untuk alasan ini, perhitungan floating-point sering ditemukan
pada sistem yang mencakup bilangan real sangat
kecil dan sangat besar , yang memerlukan waktu pemrosesan yang
cepat. Angka adalah, secara umum, mewakili kira-kira sejumlah digit signifikan ( signifikan ) dan
diskalakan menggunakan eksponendi beberapa tempat
tetap; Dasar penskalaan biasanya dua, sepuluh, atau enam
belas. Sebuah nomor yang dapat diwakili persis adalah dari bentuk berikut:
Dimana significand adalah bilangan
bulat (yaitu, dalam Z ), basa adalah bilangan bulat yang
lebih besar dari atau sama dengan dua, dan eksponen juga merupakan bilangan
bulat. Sebagai contoh:
Istilah floating point mengacu
pada fakta bahwa titik radix nomor ( titik
desimal , atau lebih umum di komputer, titik biner )
dapat "mengapung"; Artinya, tempat itu bisa ditempatkan di
manapun relatif terhadap digit angka
yang signifikan . Posisi ini ditunjukkan sebagai komponen
eksponen, dan dengan demikian representasi floating-point dapat dianggap
sebagai semacam notasi ilmiah .
Sistem floating-point dapat digunakan
untuk mewakili, dengan jumlah digit tetap, jumlah pesanan yang berbeda besarnya : misalnya jarak antara
galaksi atau diameter inti
atomdapat dinyatakan dengan satuan panjang yang sama. Hasil
dari rentang dinamis ini adalah bahwa
angka yang dapat diwakili tidak seragam spasi; Perbedaan antara dua
bilangan representatif yang berurutan tumbuh dengan skala yang dipilih. [1]
Selama bertahun-tahun, berbagai representasi floating-point telah digunakan
di komputer. Namun, sejak tahun 1990an, representasi yang paling sering
ditemui adalah yang didefinisikan oleh Standar IEEE 754 .
Kecepatan operasi floating-point, yang biasa diukur dari segi FLOPS , merupakan karakteristik penting dari sebuah sistem komputer , terutama
untuk aplikasi yang melibatkan perhitungan matematika intensif.
Sebuah unit floating-point (FPU, bahasa sehari-hari math coprocessor) adalah bagian dari sistem
komputer yang dirancang khusus untuk melaksanakan operasi pada angka floating-point.
Nomor floating-point
Ada beberapa mekanisme dimana string digit dapat mewakili angka. Dalam
notasi matematika umum, string digit dapat berupa panjang apapun, dan
lokasi titik radix ditunjukkan
dengan menempatkan karakter "titik" eksplisit (titik
atau koma) di sana. Jika titik radix tidak ditentukan, maka string secara
implisit mewakili bilangan bulat dan titik
radix yang tidak berdetak akan berada di luar ujung kanan senar, di samping
digit paling tidak signifikan. Dalam sistem fixed-point , posisi dalam string ditentukan untuk titik radix. Jadi skema
fixed-point mungkin menggunakan string 8 digit desimal dengan titik desimal di
tengah, di mana "00012345" akan mewakili 0001.2345.
Dalam notasi ilmiah , nomor
yang diberikan diskalakan dengan kekuatan 10 , sehingga
berada dalam kisaran tertentu - biasanya antara 1 dan 10, dengan titik radix
muncul segera setelah digit pertama. Faktor penskalaan, sebagai kekuatan
sepuluh, kemudian ditunjukkan secara terpisah di akhir nomor. Sebagai
contoh, periode orbit Jupiter bulan 's Io adalah 152 853 ,5047 detik,
nilai yang akan direpresentasikan dalam standar-bentuk notasi ilmiah
sebagai 1,528 535 047 × 10 5 detik.
Representasi floating-point serupa dalam
konsep notasi ilmiah. Logikanya, bilangan floating-point terdiri dari:
·
String digit yang
ditandatangani (berarti negatif atau tidak negatif) dengan panjang tertentu
dalam basis tertentu (atau radix ). String
digit ini disebut sebagai significand , mantissa ,
atau koefisien . Panjang significand menentukan ketepatan angka
mana yang dapat diwakili. Posisi titik radix diasumsikan selalu berada di
suatu tempat dalam signifikansi-seringkali hanya setelah atau sesaat sebelum
digit yang paling signifikan, atau di sebelah kanan digit paling kanan (paling
tidak signifikan). Artikel ini umumnya
mengikuti konvensi bahwa titik radix diset tepat setelah digit paling kiri
(paling kiri).
· Sebuah eksponen integer yang
ditandatangani (juga disebut sebagai karakteristik ,
atau skala ), yang memodifikasi besarnya angka tersebut.
Untuk mendapatkan nilai bilangan floating-point, maka significand dikalikan
dengan basis yang diangkat ke kekuatan eksponen ,
setara dengan menggeser titik radix dari posisi tersiratnya oleh sejumlah
tempat yang sama dengan nilai eksponen-ke kanan jika eksponennya positif atau
ke kiri jika eksponennya negatif.
Menggunakan basis-10 (akrab desimal notasi) sebagai contoh, jumlah 152 853 0,5047 ,
yang memiliki sepuluh angka desimal presisi, diwakili sebagai significand
1528535047 bersama-sama dengan 5 sebagai eksponen. Untuk menentukan nilai
sebenarnya, titik desimal ditempatkan setelah digit pertama dari significand
dan hasilnya dikalikan dengan 10 5untuk
memberikan 1,528 535 047 × 10 5 ,
atau 152 853, 5047 . Dalam menyimpan nomor semacam
itu, basis (10) tidak perlu disimpan, karena akan sama untuk keseluruhan
rentang angka yang didukung, dan dengan demikian dapat disimpulkan.
Secara simbolis, nilai akhir ini adalah:
dimana 8 adalah
significand (mengabaikan titik desimal tersirat), p adalah ketepatan (jumlah digit di significand), b adalah dasar (dalam contoh kita, ini
adalah nomor sepuluh ), dan e adalah eksponen
Secara historis, beberapa basis
bilangan telah digunakan untuk mewakili bilangan floating-point, dengan basis
dua ( biner ) menjadi yang paling umum,
diikuti oleh basis sepuluh (desimal), dan varietas lainnya yang kurang umum,
seperti dasar enam belas ( notasi
heksadesimal ), dan bahkan basis tiga (lihat Setun ).
Angka floating-point adalah
bilangan rasional , karena dapat digambarkan
sebagai satu bilangan bulat dibagi oleh yang
lain; misalnya 1,45 × 10 3 adalah
(145/100) * 1000 atau 145 000 /100. Dasar menentukan fraksi
yang dapat diwakili; Misalnya, 1/5 tidak dapat diwakili persis seperti
bilangan floating-point menggunakan basis biner, tapi 1/5 dapat diwakili persis
dengan menggunakan basis desimal ( 0,2 ,
atau 2 × 10 -1 ). Namun, 1/3 tidak dapat diwakili persis dengan biner (0,010101 ...) atau
desimal (0,333 ...), namun di basis 3 , ini sepele (0,1 atau 1 × 3 -1). Peristiwa
dimana ekspansi tak terbatas terjadi bergantung pada basis dan faktor utamanya , seperti
yang dijelaskan dalam artikel Notasi Pos .
Cara di mana yang penting dan (termasuk tanda) dan eksponennya disimpan di
komputer bergantung pada implementasi. Format IEEE yang umum dijelaskan
secara rinci di lain waktu dan di tempat lain, namun sebagai contoh, dalam
representasi floating-point presisi tunggal (32-bit) biner, p = 24, dan begitu significand adalah
string 24 bit . Misalnya, jumlah π 's pertama
33 bit adalah:
11001001 00001111 1101101 0 101000100
Jika bit paling kiri dianggap sebagai bit ke-1, maka bit 24 adalah nol dan
bit ke-25 adalah 1; Dengan demikian, dalam pembulatan menjadi 24 bit, mari
kita atribut ke bit 24 nilai 25, menghasilkan:
11001001 00001111 1101101 1
Bila ini disimpan menggunakan pengkodean IEEE 754, ini menjadi significand 8 dengan e=1 (dimana 8 diasumsikan memiliki titik biner di
sebelah kanan bit pertama) setelah penyesuaian kiri (atau normalisasi )
selama titik nol yang mengarah atau tertinggal terpotong harus ada,
yang tidak perlu dalam kasus ini; Sebagai akibat dari normalisasi ini, bit
pertama dari unsigned biner non-nol selalu 1, jadi tidak perlu disimpan,
menghemat satu bit penyimpanan.
Alternatif untuk bilangan floating-point
Representasi
floating-point sejauh ini merupakan cara yang paling umum untuk mewakili
komputer sebagai aproksimasi bilangan real. Namun, ada alternatifnya:
a. Representasi fixed-point menggunakan operasi perangkat keras integer yang dikendalikan oleh
implementasi perangkat lunak dari konvensi tertentu mengenai lokasi titik biner
atau desimal, misalnya 6 bit atau digit dari kanan. Perangkat keras untuk
memanipulasi representasi ini lebih murah daripada floating point, dan dapat
digunakan untuk melakukan operasi bilangan bulat normal juga. Titik tetap
biner biasanya digunakan pada aplikasi tujuan khusus pada prosesor tersemat yang
hanya bisa melakukan aritmatika bilangan bulat, namun titik desimal tetap sama
pada aplikasi komersial.
b. Binary-coded decimal (BCD) adalah pengkodean untuk angka desimal di mana setiap digit
diwakili oleh urutan binernya sendiri. Hal ini dimungkinkan untuk
menerapkan sistem floating-point dengan pengkodean BCD.
c. Sistem bilangan
logaritma mewakili bilangan real dengan logaritma nilai
absolut dan sedikit tanda. Distribusi nilai sama dengan floating point,
namun kurva value-to-representation ( yaitu grafik fungsi
logaritma) mulus (kecuali pada 0). Sebaliknya untuk aritmatika
floating-point, dalam multiplikasi sistem bilangan logaritmik, pembagian dan
eksponenasi mudah diterapkan, namun penambahan dan pengurangannya
rumit. The Indeks tingkat aritmatika dari
Clenshaw, Olver, dan Turner adalah skema didasarkan pada representasi logaritma
umum.
d. Bila presisi yang lebih tinggi diinginkan,
aritmatika floating-point dapat diimplementasikan (biasanya dalam perangkat
lunak) dengan variabel-length significands (dan kadang-kadang eksponen) yang
berukuran tergantung pada kebutuhan aktual dan tergantung bagaimana
perhitungannya berjalan. Ini disebut arbitrary-precision floating-point
arithmetic.
e. Beberapa angka ( misal 1/3
dan 1/10) tidak dapat diwakili persis dalam biner floating-point, tidak masalah
presisinya. Paket perangkat lunak yang melakukan aritmatika rasionalmewakili bilangan sebagai
pecahan dengan bilangan bulat dan penyebut integral, dan karenanya dapat
mewakili bilangan rasional apa pun. Paket seperti itu umumnya perlu
menggunakan aritmatika " bignum "
untuk bilangan bulat masing-masing.
f. Sistem aljabar komputer seperti Mathematica dan Maxima sering menangani bilangan
irasional atau dengan
cara yang benar-benar "formal", tanpa berurusan dengan pengkodean
spesifik dari makna dan. Program semacam itu dapat mengevaluasi ungkapan
seperti sin (3x)“ tepatnya, karena diprogram untuk memproses matematika
yang mendasarinya secara langsung, daripada menggunakan nilai perkiraan untuk
setiap perhitungan perantara.
•
ARITMATIKA
FLOATING-POINT
Bentuk standar :
Contoh : 0.125 * 102
Bentuk standar utk bilangan floating point biner :
Jangkaun utk mantissa f adalah 0.5 < f < 1 dan -1 < f
< -0.5
Normalisasi :
a.
geser mantissa n bit ke kiri atau ke kanan
menurut keperluan
b.
jika digeser ke kiri, kurangkan n dari
eksponennya
c.
jika
digeser ke kanan, tambahkan n dari eksponennya
contoh :
a. mengurangkan1/2 dgn 5/8 dapat menimbulkan representasi 1/8
Mantissa
|
Eksponent
|
Komentar
|
|||||
0
|
0
|
0
|
1
|
0
|
0
|
0
|
1/8 not in standar form
|
0
|
1
|
0
|
0
|
1
|
1
|
0
|
Mantissa shifted 2 places left so 2 substracted
|
from
|
|||||||
b. menambahkan 5/8 ke 7/8 dapat menimbulkan
representasi 1 ½
|
|||||||
Mantissa
|
Eksponent
|
Komentar
|
|||||
0
|
1
|
0
|
0
|
0
|
0
|
0
|
1 ½ not in standar form
|
0
|
1
|
1
|
0
|
0
|
0
|
1
|
Mantissa shifted 1 places right so 1 added to
|
eksponen
|
Jangkauan representasi floating-point bentuk standar :
representasi floating-point
i.
bilangan paling
positif terjadi dgn mantissa positif terbesar dan eksponen positif terbesar
ii.
bilangan positif
terkecil terjadi dgn mantissa positif terkecil dan eksponen negatif terbesar
iii.
bilangan negatif
terkecil terjadi dgn mantissa negatif paling kecil dan eksponen negatif
terbesar
iv.
bilangan negatif
terbesar terjadi dgn mantissa negatif terbesar dan eksponen positif terbesar
Perkalian dan pembagian bilangan floating-point
a. perkalian
i.
kalikan mantissa
ii.
tambahkan eksponen
iii.
normalisasi
contoh :
(0.12 * 102) * (0.253 * 102)
(0.12 * 0.253) * 102+3 = 0.300 * 104
b. pembagian
i.
bagi mantissa
ii.
kurangi eksponen
iii.
normalisasi
contoh :
(0.156 * 103) * (0.12 * 102)
(0.156 * 0.12) * 103-2 = 0.130 *
102
Daftar Pustaka
nurfajria.staff.gunadarma.ac.id/Downloads/files/34088/aritmatika+fixed-point.pdf
Komentar
Posting Komentar