Floating point number representation in MIPS is as
shown below :
s = sign of floating point ( 1= negative,
0 = positive)
fraction =
the numbers after the decimal after normalized number.
exponent =
actual exponent + bias
Eg : 134.590 = 1.34590 x 102 , 2 is the actual exponent.
bias
=> for single precision = 127
= > for double precision = 1023
Example
for floating point example
:
Represent –0.75
1. Disebabkan
angka ini adalah angka negatif, jadi s = 1
2. 0.75 x 2 =1.5 =>
1
0.50 x 2 =1.0 => 1
-0.75= -1.1 x 2-1
Fractionnya ialah 1000…00
3. Bagi
single precision, exponent= actual exponent + 127
= -1+127 = 126
Bagi double
precision, exponent = -1 + 1023 = 1022
4. Jadi
, representation floating point bagi :
Example
2 :
Converting binary to decimal floating point
Find the decimal number represented by this single
precision float.
Floating
Point Addition
Tambahan floating point adalah amat serupa dengan
tambahan nombor biasa, dengan hanya menambah beberapa langkah sahaja.
Langkah pertama adalah menjadikan number floating
point untuk memiliki exponent yang sama. Keutamaan exponent adalah mengikut
exponent yang lebih besar antara kedua-dua nombor terlibat.
Langkah kedua adalah menambah kedua-dua nombor itu.
Ketiga, jika jumlah tambahan bukan dalam normalized
scientific notation, adjustkannya menjadi bentuk normalize.
Langkah keempat ialah adjustkannya kepada bits yang
ditetapkan dalam soalan jika ada.
Bagi tambahan binary floating point, satu langkah
ditambah selepas langkah ketiga, iaitu menyemak sama ada kewujudan overflow dan
underflow berlaku yang mana ia bergantung dengan precision operand. Jika tiada
berlakunya overflow dan underflow, melanjut ke langkah keempat. Jika berlaku,
pengecualian berlaku. Berikut adalah contoh-contoh tambahan floating point.
Example
1:
9.999tenx 101 + 1.610ten
x 10-1 (4 decimal digit of significand)
Langkah 1: exponent 1 dan -1, dengan keutamaannya, 1 akan
digunakan sebagai exponent persamaan.
Jadi, 1.610ten x 10-1, titik perpuluhan
bergerak ke belakang dan menjadi 0.016tenx101.
Langkah 2 : tambahkan kedua-duanya.
9.999tenx
101 + 0.016tenx101= 10.015ten
x 101
Langkah 3 : oleh sebab normalized scientific
notation hanya melingkungi 1-9, jawapan perlu adjust.
10.015ten
x 101 = 1.0015ten x 102
Langkah 4 : soalan tetapkan 4 decimal digit, jadi,
kena bundarkan jawapan.
1.0015ten
x 102 = 1.002ten x 102
Example
2
Adding 0.510 and -0.437510in
binary.
Pertama, tukarkan nombor floating point kepada
floating point asas 2.
0.510
x 2 = 1.0 , bermaksud 0.510
= 0.12 = 1.0 x 2-1
-0.437510
x 2 = -0.875 ==> 0
-0.875
x 2 = -1.75 ==> 1
-0.75
x 2 = -1.5 ==> 1
-0.5
x 2 = -1.0 ==> 1
Therefore,
-0.437510 = -0.01112 = -0.111 x 2-1
Langkah kedua, tambahkan kedua-duanya.
(1 x
2-1 ) + ( - 0.111 x 2-1) = 0.001 x 2-1
Ketiga, normalize jawapan.
0.0012
x 2-1 = 1.02x 2-4
-126
<= -4<= 127, tiada overflow atau underflow, melanjut ke langkah empat.
Langkah empat, bundarkan jawapan kepada 4 digit bagi
menjadi 1.0002 x 2-4.
1.0002
x 2-4 = 0.00012 = -0.062510
Floating
Point Multiplication
Bagi pendaraban nombor floating point, ia adalah
lebih kurang sama dengan pendaraban biasa dan juga langkah bagi tambahan.
Langkah pertama, tambahkan biased exponent kedua-dua
nombor dan tolak bias daripada jumlah bagi mendapatkan biased exponent baru.
Langkah kedua, darabkan nombor-nombor berkenaan.
Ketiga, normalize jawapan jika
perlu. Kemudian, memeriksa sama ada kewujudan overflow dan underflow berlaku.
Jika tiada, melanjut ke langkah keempat. Jika ada, pengecualian berlaku.
Langkah keempat, bundarkan
significand kepada bits yang dinyatakan dalam soalan. Jika jawapan sudah ada
dalam bentuk normalize, lanjut ke langkah kelima, jika tidak, normalizekannya
lagi.
Langkah kelima, tandakan sign positif jika sign
operand original adalah same. Jika tidak sama, tandakan negatif.
Example 1: Binary Floating Point Multiplication
Multiply 0.5ten and
-0.4375ten.
Pertama, tukarkan nombor floating point kepada
floating point asas 2.
0.510
x 2 = 1.0 ,bermaksud 0.510
= 0.12 = 1.0 x 2-1
-0.437510
x 2 = -0.875 ==> 0
-0.875
x 2 = -1.75 ==> 1
-0.75
x 2 = -1.5 ==> 1
-0.5
x 2 = -1.0 ==> 1
Jadi, -0.437510 = -0.01112 =
-0.1112 x 2-1 = -1.112 x 2-2
Tambah biased exponent.
(-1+127)
+ (-2+127) + 127 = 126 + 125 – 127 = 124
Kedua, darab kedua-dua nombor itu.
1.0002
X 1.1102
0000
1000
1000
1000
11100002
Jawapan adalah 1.112 x 2-3
Ketiga, jawapan telah berada dalam bentuk normalize,
lanjut kepada pemeriksaan kewujudan overflow atau underflow.
254>=124>=1, tiada overflow dan underflow.
Langkah keempat, bundarkan jawapan. Tiada perubahan
dalam kes ini.
Langkah kelima, jawapan tidak sama dengan operand
original, tandakan sign negatif di depannya.
-1.112
x 2-3
Written by,
QUEK XIN YI
No comments:
Post a Comment