Вы находитесь на странице: 1из 48

Computer Arithmetic

Pendahuluan
Ir. Heru Nurwarsito, M.Kom
Barlian Henryranu P, ST, MT
Eko Saksi Pramukantoro, S.Kom, M.Kom
10.
-

PENDAHULUAN
Pengantar
Tujuan
Latar belakang

10. PENDAHULUAN
Pengantar

Dewasa ini, teknologi informasi berkembang dengan sangat


cepat. Seiring dengan berkembangnya teknologi, maka
dibutuhkan berbagai macam komponen alat ukur yang
mendukung, diantaranya adalah ilmu, alat dan sumber daya
manusia yang handal. Dalam bidang ilmu pengetahuan dan
sumber daya manusia, sudah sangat berkembang terlihat
daribanyaknya perguruan tinggi yang memfokuskan diri dalam
bidang teknologi. Hal ini perlu diimbangi dengan adanya
dukungan dari segi alat untuk mengaplikasikan ilmu.

ALU di sini adalah Arithmetic and Logic Unit yang dalam bahasa
Inggris kamus adalah Unit logika dan Aritmatematika. ALU ini
terletak di microprocessor (processor) baik yang bermerek
Intel, Power PC, atau AMD. Sesuai dengan namanya, ALU
bertindak untuk melakukan operasi aritmatik seperti
pengurangan-penambahan dan operasi logika seperti lebih
besar, lebih kecil, dan sama dengan.

MODUL

10
SELF-PROPAGATING ENTREPRENEURIAL EDUCATION DEVELOPMENT
(SPEED)

10.1 Arithmetic and Logic Unit


10.2 Integer Representation
- Sign-Magnitude
Representation
- Twos Complement
Representation
- Range Extension

10.3 Integer Arithmetic


- Negation
- Addition and Substarction
- Multiplication
10.4 Floating - Point Representation
- Principles
- IEEE Starndard
10.5 Floating Point Arithmetic
- Multiplication and Division
- Precision Considarations

Computer Arithmetics/BAB 10

Brawijaya University

Selanjutnya, computer organisasi hirarkis. Setiap komponen

utama dapat dijelaskan lebih lanjut ke subkomponen utama dan

2014

menjelaskan struktur dan fungsi mereka. Untuk kejelasan dan


kemudahan pemahaman, organisasi hirarkis dijelaskan dari atas
ke bawah:

Sistem komputer: komponen utama adalah prosesor, memori, I / O.

Processor: komponen utama adalah unit kontrol, register, ALU, dan


instruksi Unit eksekusi

Control Unit: Menyediakan sinyal kontrol untuk operasi dan koordinasi dari
semua komponen prosesor.

Page 2 of 48

Computer Arithmetics/BAB 10

Brawijaya University

Tujuan

Setelah mengikuti materi kuliah ini diharapkan mahasiswa dapat

2014

Memahami perbedaan antara cara di mana nomor diwakili (format biner) dan
algoritma yang digunakan untuk operasi aritmatika dasar.

Menjelaskan representasi kedua complement.

Menyajikan gambaran dari teknik untuk melakukan operasi aritmatika dasar


dalam dua notasi komplemen.

Memahami

penggunaan

dasar

yang

signifikan,

dan

eksponen

dalam

representasi bilangan floating point.

Menyajikan gambaran dari IEEE 754 standar untuk representasi floatingpoint.

Memahami kata kunci suatu konsep yang berhubungan dengan floating point
aritmatika, termasuk guard bits, pembulatan, angka dibawah normal,
underflow dan overflow.

Latar Belakang
Kita mulai pemeriksaan kami prosesor dengan gambaran dari aritmatika dan logika Unit
(ALU). Bab ini kemudian berfokus pada aspek yang paling kompleks ALU, aritmatika
komputer. Fungsi logika yang merupakan bagian dari ALU dijelaskan dalam Bab 12, dan
implementasi logika sederhana dan fungsi aritmatika dalam logika digital dijelaskan
dalam Bab 11. aritmatika komputer umumnya dilakukan pada dua jenis yang sangat
berbeda dari nomor: integer dan floating point. Dalam kedua kasus, representasi yang
dipilih adalah masalah desain penting dan diperlakukan pertama, diikuti dengan diskusi
operasi aritmatika. Bab ini mencakup sejumlah contoh, yang masing-masing disorot
dalam kotak berbayang.

10.1 ARITMETIC AND LOGIC UNIT


ALU merupakan bagian dari komputer yang benar-benar melakukan aritmatika dan logis
operasi pada data. Semua unsur-unsur lain dari unit komputer sistem kontrol, register,
memori, I / O yang ada terutama untuk membawa data ke ALU untuk itu untuk
memproses dan kemudian mengambil kembali hasilnya keluar. Kami memiliki dalam arti
mencapai inti atau esensi dari sebuah komputer ketika kita mempertimbangkan ALU.
ALU dan memang, semua komponen elektronik di komputer didasarkan pada
penggunaan perangkat logika digital sederhana yang dapat menyimpan angka biner dan
melakukan operasi logika sederhana Boolean. Operan untuk operasi aritmatika dan
logika ditampilkan kepada ALU dalam register, dan hasil operasi disimpan dalam
Page 3 of 48

Computer Arithmetics/BAB 10

Brawijaya University

register. Register ini adalah lokasi penyimpanan sementara dalam prosesor yang

terhubung dengan jalur sinyal ke ALU . ALU juga dapat menetapkan bendera sebagai

2014

hasil dari operasi. Sebagai contoh, sebuah bendera overflow diset ke 1 jika hasil
perhitungan melebihi panjang register di mana itu harus disimpan.

10.2 INTEGER REPRESENTATION


Dalam sistem bilangan biner nomor acak dapat diwakili hanya dengan
digit nol dan satu, tanda minus (untuk angka negatif), dan periode, atau akar
point (untuk nomor dengan komponen pecahan).

-1101.01012 = - 13.312510
Untuk tujuan penyimpanan komputer dan pengolahan, namun kami tidak mendapatkan
manfaat dari simbol-simbol khusus untuk tanda minus dan titik akar. Hanya biner digit
(0 dan 1) dapat digunakan untuk mewakili angka. Jika kita terbatas pada bilangan bulat
non negatif, representasi secara langsung.

Contoh penggunaan 8-bit dari 0 255 :


00000000 =

00000001 =

00101001 =

41

10000000 = 128
11111111 = 255
Sign-Magnitude Representation
Ada beberapa konvensi alternatif yang digunakan untuk mewakili bilangan bulat
negatif serta positif, yang semuanya melibatkan mengobati yang paling signifikan
(paling kiri) bit dalam kata sebagai bit tanda. Jika bit tanda adalah 0, nomor positif;
jika bit tanda adalah 1, nomor negatif.
Bentuk paling sederhana dari penggunaan yang menggunakan sedikit tanda adalah
penggunaan tanda. Dalam bilangan n-bit, yang paling kanan n - 1 bit memegang
besarnya integer.
Page 4 of 48

Computer Arithmetics/BAB 10
+ 18
- 18

Brawijaya University

= 00010010
= 10010010

2014

(sign magnitude)

Ada beberapa kelemahan untuk penggunaan tanda . Salah satunya adalah bahwa
penambahan dan pengurangan memerlukan pertimbangan baik tanda-tanda angka
dan besaran relatif mereka untuk melaksanakan operasi yang diperlukan.
Hal ini tidak nyaman karena sedikit lebih sulit untuk menguji 0 (operasi
sering

dilakukan

Karena

pada

kelemahan

komputer)

ini,

daripada

gambaran

jika

sign-besarnya

ada

representasi

jarang

digunakan

tunggal.
dalam

menerapkan bagian integer dari ALU. Sebaliknya, skema yang paling umum adalah
gambaran komplemen berpasangan.
Twos Complement Representation
Seperti tanda besarnya, gambaran komplemen berpasangan menggunakan bit yang
paling signifikan sebagai bit tanda, sehingga mudah untuk menguji apakah suatu
bilangan bulat positif atau negatif. Ini berbeda dari penggunaan representasi signbesarnya dengan cara yang lain bit diinterpretasikan. Tabel 10.1 menyoroti
karakteristik kunci dari berpasangan melengkapi gambaran dan aritmatika, yang
diuraikan dalam bagian ini dan berikutnya.

Range

- 2n - 1 through 2n - 1 - 1
One

Number of
Representations of Zero

Ambil komplemen Boolean setiap bit dari bilangan positif


yang sesuai, kemudian tambahkan 1 ke bit yang dihasilkan

Peniadaan

dipandang sebagai unsigned interger


Tambahkan posisi bit tambahan ke kiri da nisi dengan nilai asli

Perjangan Panjang Bit

tanda bit.
Jika dua angka dengan tanda yang sama ditambahkan, ketika
overflow terjadi dan jika hasilnya memiliki tanda yang

Aturan Overflow

berlawanan.
Untuk mengurangi B dari A, gunakan complement 2dan

Aturan Pengurangan

Table 10.1

tambahkan ke A

Karakteristik Penggunaan Complement 2 dan Arithmatika

Sebagian perlakuan berpasangan melengkapi fokus perwakilan pada aturan untuk


memproduksi angka negatif, tanpa bukti formal bahwa skema tersebut valid.
Page 5 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Sebaliknya, Presentasi kami berpasangan melengkapi bilangan bulat di bagian ini dan
dalam Bagian 10.3 adalah berdasarkan [DATT93], yang menunjukkan bahwa

berpasangan melengkapi gambaran terbaik dipahami oleh mendefinisikannya dalam


hal jumlah tertimbang bit, seperti yang kita lakukan sebelumnya untuk representasi
unsigned dan tanda-besarnya. Keuntungan dari perawatan ini adalah bahwa hal itu
tidak meninggalkan keraguan berlama-lama bahwa aturan untuk operasi aritmatika
dalam notasi melengkapi dua-dua tidak dapat bekerja untuk beberapa kasus khusus.
Pertimbangkan n-bit integer, A, dalam representasi berpasangan melengkapi. Jika A
adalah positif, maka bit tanda, sebuah , Adalah nol. Bit sisanya merepresentasikan
besarnya nomor dengan cara yang sama seperti untuk tanda besarnya.

Angka nol diidentifikasi sebagai positif dan karena itu memiliki sedikit 0 tanda dan
besarnya semua 0s. Kita bisa melihat bahwa berbagai bilangan bulat positif yang
dapat diwakili adalah dari 0 (semua bit besarnya adalah 0) melalui 2 ^ n-1-1 (semua
bit besarnya adalah 1). Angka yang lebih besar akan membutuhkan lebih banyak bit.
Sekarang, untuk angka negatif A (A < 0), bit tanda, A 'n-1, adalah salah satu. Sisanya
n - 1 bit dapat mengambil salah satu dari 2 ^ n-1 nilai. Oleh karena itu, kisaran
bilangan bulat negatif yang dapat direpresentasikan adalah dari -1 ke -2 ^ n-1. Kami
ingin menetapkan nilai bit untuk bilangan bulat negatif sedemikian rupa aritmatika
yang dapat ditangani dengan cara yang mudah, mirip dengan unsigned aritmatika
integer. Dalam representasi unsigned integer, untuk menghitung nilai integer dari
representasi bit, berat bit yang paling signifikan adalah + 2 ^ n-1. Untuk representasi
dengan sedikit tanda, ternyata sifat aritmatika yang diinginkan tercapai, seperti yang
akan kita lihat dalam Bagian 10.3, jika berat bit yang paling signifikan adalah -2 ^ n1. Ini adalah konvensi yang digunakan dalam representasi complement kedua,
menghasilkan ekspresi berikut untuk angka negatif:

Persamaan (10.2) mendefinisikan representasi dua pelengkap untuk kedua bilangan


positif dan negatif. Untuk A ^ n-1 = 0, istilah -2 ^ n-1a ^ n-1 = 0 dan persamaan
mendefinisikan

Page 6 of 48

Computer Arithmetics/BAB 10
Table 10.2

Brawijaya University

Alternative Representations for 4-Bit Integers


Decimal

Sign-Magnitude

Twos Complement

Biased

Representation

Representation

Representation

Representation

+8

1111

+7

0111

0111

1110

+6

0110

0110

1101

+5

0101

0101

1100

+4

0100

0100

1011

+3

0011

0011

1010

+2

0010

0010

1001

+1

0001

0001

1000

+0

0000

0000

0111

-0

1000

-1

1001

1111

0110

-2

1010

1110

0101

-3

1011

1101

0100

-4

1100

1100

0011

-5

1101

1011

0010

-6

1110

1010

0001

-7

1111

1001

0000

-8

1000

2014

bilangan bulat positif. Ketika A ^ n - 1 = 1, istilah 2 ^ n - 1 dikurangi dari istilah


penjumlahan, menghasilkan bilangan bulat negatif.
Tabel 10.2 membandingkan tanda-besaran dan berpasangan melengkapi representasi
untuk 4-bit bilangan bulat. Meskipun berpasangan melengkapi adalah representasi
canggung dari sudut pandang manusia, kita akan melihat bahwa itu memfasilitasi
paling penting aritmatika operasi, penambahan dan pengurangan. Untuk alasan ini,
hampir secara universal digunakan sebagai representasi prosesor untuk bilangan
bulat.
Sebuah ilustrasi yang berguna sifat representasi berpasangan melengkapi adalah
kotak nilai, dimana nilai di paling kanan di dalam kotak adalah 1 (20) dan masingmasing posisi berhasil ke kiri dua kali lipat nilai, sampai posisi paling kiri, yang
dinegasikan. Seperti yang Anda lihat pada Gambar 10.2a, yang berpasangan paling
negatif melengkapi jumlah yang dapat diwakili adalah - 2 ^ n - 1; jika salah satu bit
selain bit tanda adalah salah satu, itu menambah jumlah positif ke nomor. Selain itu,
jelas bahwa angka negatif harus memiliki
Page 7 of 48

Computer Arithmetics/BAB 10

Brawijaya University

1 pada posisi paling kiri dan angka positif harus memiliki 0 di posisi itu. Dengan

2014

demikian, jumlah positif terbesar adalah 0 diikuti oleh semua 1s, yang sama dengan 2
^ n - 1-1.
Sisa Gambar 10.2 mengilustrasikan penggunaan kotak nilai untuk mengkonversi dari
berpasangan melengkapi ke desimal dan dari desimal ke berpasangan melengkapi.
Range Extension
Kadang-kadang diinginkan untuk mengambil n-bit integer dan menyimpannya dalam
m bit, di mana m 7 n. Perluasan panjang bit disebut sebagai ekstensi range, karena
kisaran angka yang dapat dinyatakan diperpanjang dengan meningkatkan panjang
bit.
128

64

32

16

(a) An eight-position twos complement value box


128

64

32

16

128

125

(b) Convert binary 10000011 to decimal

120

128

64

32

16

128

8
(c) Convert decimal

120 to binary

Gambar 10.2 Penggunaan Nilai Box untuk Konversi antara Complement ke-2 Biner dan
Desimal

+ 18
+ 18
- 18
- 18

=
=
=
=

00010010
0000000000010010
10010010
1000000000010010

(sign
(sign
(sign
(sign

magnitude,
magnitude,
magnitude,
magnitude,

8 bits)
16 bits)
8 bits)
16 bits)

Prosedur ini tidak akan bekerja untuk berpasangan melengkapi bilangan bulat negatif.
Menggunakan contoh yang sama,

Page 8 of 48

Computer Arithmetics/BAB 10
+ 18
+ 18
- 18
32,658

=
=
=
=

00010010
0000000000010010
11101110
1000000001101110

(twos
(twos
(twos
(twos

Brawijaya University

complement,
complement,
complement,
complement,

8 bits)
16 bits)
8 bits)
16 bits)

2014

Sebaliknya, aturan untuk complement ke-2 bilangan bulat adalah untuk memindahkan
bit tanda ke posisi paling kiri baru dan isi dengan salinan bit tanda. Untuk bilangan
positif, isi dengan nol, dan angka negatif, isi dengan yang. Ini disebut ekstensi tanda.

18
18

=
=

1110111 (twos complement,


111111111110
(twos
complement,
0
8) bits)
1110
16) bits)

Untuk melihat mengapa aturan ini bekerja, mari kita kembali mempertimbangkan
urutan n-bit dari biner digit (an-1an-2. . . a1a0) diartikan sebagai complement two
bilangan bulat A, sehingga nilainya adalah

Jika A adalah angka positif, aturan jelas bekerja. Sekarang, jika A adalah negatif dan
kami ingin membangun sebuah representasi m-bit, dengan m 7 n. Kemudian

Page 9 of 48

Computer Arithmetics/BAB 10

Brawijaya University

Kedua nilai harus sama :

2014

Dalam pergi dari pertama ke persamaan kedua, kami mengharuskan setidaknya n


signifikan - 1 bit tidak berubah antara dua representasi. Kemudian kita sampai ke
sebelah persamaan terakhir, yang hanya benar jika semua bit dalam posisi n - 1
sampai m - 2 adalah 1. Oleh karena itu, aturan tanda-penyuluhan. Pembaca dapat
menemukan aturan lebih mudah untuk memahami setelah mempelajari pembahasan
berpasangan melengkapi negasi pada awal Bagian 10.3.
Fixed-Point Representation
Akhirnya, kami menyebutkan bahwa penggunaan yang dibahas dalam bagian ini
kadang-kadang disebut sebagai titik tetap. Hal ini karena titik radix (titik biner)
adalah tetap dan diasumsikan kanan digit paling kanan. Programmer dapat
menggunakan representasi yang sama untuk pecahan biner dengan skala angka
sehingga titik biner secara implisit diposisikan di beberapa lokasi lain.

10.3 INTEGER ARITMETIC


Bagian ini membahas fungsi aritmatika umum pada angka dalam two complement
representation.

Page 10 of 48

Computer Arithmetics/BAB 10

Brawijaya University

Negation

2014

Dalam representasi sign magnitude, aturan untuk membentuk negasi dari integer
sangat sederhana: membalikkan bit bertanda. Dalam notasi two complemen , negasi
dari integer dapat dibentuk dengan aturan berikut:
1. Ambil komplemen Boolean setiap bit dari integer (termasuk bit tanda). Artinya,
setiap set 1-0 dan masing-masing 0-1.
2. Menjadikan hasil sebagai integer biner unsigned, tambahkan 1.
Proses kedua langkah tersebut disebut sebagai two complement operaration, atau
mengambil dari two complemen integer.

-18

= 00010010 (two complement)


= 11101101

Bit wise complement

+____________1_
11101110 = -18

Seperti yang diharapkan, negatif dari jumlah tersebut adalah dirinya sendiri:

18
Bit wise complement

= 00010010 (two complement)


= 11101101

+____________1_
00010010 = +18

Kita bisa menunjukkan validitas operasi yang baru saja dijelaskan menggunakan
definisi dari representasi two complement dalam persamaan (10.2). Sekali lagi,
menafsirkan urutan n-bit dari biner digit

sebagai two complement

bilangan bulat A, sehingga nilainya adalah

Sekarang membentuk complement bitwise

dan ini sebagai unsigned

integer, tambahkan 1. Artikan urutan n-bit yang dihasilkan dari angka biner sebagai
twos complement bilangan bulat B, sehingga nilainya adalah
Page 11 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Sekarang, kita ingin A = -B, yang berarti A + B = 0. Hal ini mudah dan terbukti
benar:

Sebelumnya derivasi mengasumsikan bahwa pertama kita dapat memperlakukan


komplemen bitwise dari A sebagai unsigned integer untuk tujuan penambahan 1, dan
kemudian hasilnya sebagai twocomplement integer. Ada dua kasus khusus untuk
dipertimbangkan. Pertama, pertimbangkan A = 0. Dalam hal ini, untuk representasi 8bit:
0 = 00000000 (twos complement)
bitwise complement

= 11111111
1
100000000 = 0

Posisi bit yang paling signifikan, yang diabaikan. Hasilnya adalah bahwa negasi dari 0
adalah 0, sebagaimana mestinya.
Kasus khusus yang kedua lebih dari satu masalah. Jika kita mengambil negasi dari
pola bit dari 1 diikuti oleh n - 1 angka nol, kita mendapatkan kembali nomor yang
sama. Misalnya, representasi 8-bit,

-128
bitwise complement

= 10000000 (twos complement)


= 01111111
+
1
10000000 = -128

Beberapa keganjilan tersebut tidak dapat dihindari. Jumlah pola bit yang berbeda
dalam n-bit adalah 2n, yang merupakan bilangan genap. Kami ingin menunjukkan
bilangan bulat positif, negatif dan 0. Jika jumlah yang sama bilangan bulat positif dan
negatif direpresentasikan (sign magnitude), maka ada dua representasi untuk 0. Jika
hanya ada satu representasi (two complemen), maka harus ada jumlah yang tidak
Page 12 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

sama dari angka negatif dan positif yang direpresentasikan. Dalam kasus komplemen
berpasangan, untuk panjang n-bit, ada representasi untuk -2n-1 tetapi tidak untuk +
2n-1.
Addition and Subtraction

Selain di two complement diilustrasikan pada Gambar 10.3. Selain itu hasil
ter seolah-olah dua angka yang unsigned integer. Pertama empat contoh
menggambarkan operasi yang berhasil. Jika hasil operasi positif, kita
mendapatkan angka positif dalam bentuk twoscomplement, yang sama dalam
bentuk unsigned-integer. Jika hasil operasi negatif, kita mendapatkan angka
negatif dalam bentuk two complement.
Pada penambahan apapun, hasilnya mungkin lebih besar daripada yang
bisa diadakan dalam ukuran yang digunakan. Kondisi ini disebut overflow.
Ketika overflow terjadi, ALU harus menandakan sehingga tidak ada upaya
untuk menggunakan hasilnya. Untuk mendeteksi overflow, aturan berikut
iniyang diamati:
OVERFLOW RULE : Jika dua nomor ditambahkan, dan mereka berdua positif atau
keduanya negatif, maka overflow terjadi jika jika hasilnya memiliki tanda yang
berlawanan.

Gambar 10.3 Penambahan Angka dalam representasi Two Complement

Gambar 10.3 e dan f menunjukkan contoh overflow. Perhatikan overflow yang dapat
terjadi atau tidak ada carry. Pengurangan mudah ditangani dengan aturan berikut:

Page 13 of 48

Computer Arithmetics/BAB 10

Brawijaya University

Subtraction rule : Untuk mengurangi satu angka (pengurang) dengan yang lain
(minuend), mengambil twos complement (negasi) dari pengurang dan
menambahkannya ke minuend tersebut.

Dengan demikian, pengurangan dapat dicapai dengan menggunakan tambahan,


seperti yang diilustrasikan pada Gambar 10.4. Dua contoh terakhir menunjukkan
bahwa aturan overflow masih berlaku.

Gambar 10.4 Pengurangan Bilangan di representasi Two Complement (M - S)

Gambar 10.5 Gambaran geometris Two Complement Integer


Page 14 of 48

2014

Computer Arithmetics/BAB 10

Brawijaya University

2014

Beberapa informasi tentang two complement penambahan dan pengurangan dapat


diperoleh dengan melihat gambaran geometris [BENH92], seperti yang ditunjukkan
pada Gambar 10.5. Lingkaran di bagian atas setiap bagian dari angka tersebut
dibentuk dengan memilih segmen yang tepat dari garis bilangan dan bergabung di

titik akhir. Perhatikan bahwa ketika nomor diletakkan pada lingkaran two complemen
bilangan apapun horizontal berlawanan dengan angka tersebut (ditandai dengan garis
putus-putus horizontal). Dimulai di sejumlah lingkaran, kita dapat menambahkan k
positif (atau mengurangi k negatif) ke nomor dengan memindahkan posisi k searah
jarum jam, dan kita dapat mengurangi k positif (atau menambahkan k negatif) dari
jumlah tersebut dengan memindahkan posisi k berlawanan. Jika operasi aritmatika
menghasilkan traversal dari titik di mana titik akhir yang bergabung, jawaban yang
salah diberikan (overflow).
Semua contoh Angka 10.3 dan 10.4 dapat dengan mudah ditelusuri dalam lingkaran
Gambar 10.5.
Gambar 10.6 menunjukkan jalur data dan elemen perangkat keras yang diperlukan
untuk mencapai penambahan dan pengurangan. Unsur utama adalah penambah
biner, yang ditampilkan dua angka untuk penambahan dan menghasilkan jumlah dan
indikasi overflow. Penambah biner memperlakukan dua angka sebagai unsigned
integer. (Implementasi logika penambah ini diberikan dalam Bab 11.) Karena Selain
itu, dua nomor disajikan untuk penambah dari dua register, yang ditunjuk dalam hal
ini sebagai register A dan B.
Hasilnya dapat disimpan di salah satu register atau ketiga. Indikasi melimpah
disimpan dalam 1-bit meluap flag (0 = tidak ada melimpah, 1 = overflow). Untuk
pengurangan, pengurang (B mendaftar) dilewatkan melalui komplementer berdua-dua
sehingga berpasangan melengkapi yang ditampilkan untuk penambah tersebut.
Perhatikan bahwa Gambar 10.6 hanya menunjukkan jalur data. Sinyal kontrol yang
diperlukan untuk mengontrol apakah atau tidak komplementer digunakan, tergantung
pada apakah operasi adalah penambahan atau pengurangan.

Page 15 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Gambar 10.6 Diagram Blok Hardware untuk Penambahan dan pengurangan

Multipication
Dibandingkan dengan penambahan dan pengurangan, perkalian merupakan
operasi yang kompleks, baik yang dilakukan dalam perangkat keras atau perangkat
lunak. Berbagai algoritma telah digunakan di berbagai komputer. Tujuan dari sub ini
adalah untuk memberi pembaca untuk tipe pendekatan yang biasanya diambil. Kita
mulai dengan masalah sederhana mengalikan dua unsigned (non-negatif) bilangan
bulat, dan kemudian kita melihat salah satu teknik yang paling umum untuk perkalian
angka dalam berpasangan melengkapi representasi.
Unsigned Integer Gambar 10.7 menggambarkan perkalian unsigned bilangan
bulat biner, seperti yang mungkin dilakukan dengan menggunakan kertas dan pensil.
Beberapa pengamatan penting dapat dibuat:

1. Perkalian melibatkan generasi produk parsial, satu untuk setiap digit dalam
multiplier. Produk-produk parsial kemudian dijumlahkan untuk menghasilkan
produk akhir.

Gambar 10.7 Multiplikasi Unsigned Binary Integer


Page 16 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

2. Produk parsial dapat dengan mudah didefinisikan. Bila bit multiplier adalah 0,
produk parsial adalah 0. Ketika multiplier adalah 1, produk parsial
multiplicand.
3. Total produk yang dihasilkan dengan menjumlahkan produk parsial. Untuk
operasi ini, setiap produk parsial berturut-turut digeser satu posisi ke kiri
relatif terhadap produk parsial sebelumnya.
4. Perkalian dua bilangan bulat n-bit biner menghasilkan produk hingga 2n bit
panjang (misalnya, 11 * 11 = 1.001).

Dibandingkan dengan pendekatan pensil dan kertas, ada beberapa hal yang dapat
kita lakukan untuk membuat perkalian yang terkomputerisasi lebih efisien. Pertama,
kita bisa melakukan penambahan berjalan pada produk parsial daripada menunggu
sampai akhir. Hal ini menghilangkan kebutuhan untuk penyimpanan semua produk
parsial; register sedikit diperlukan. Kedua, kita dapat menghemat waktu pada
generasi produk parsial. Untuk setiap 1 pada multiplier, add dan operasi pergeseran
yang diperlukan; tetapi untuk setiap 0, hanya pergeseran diperlukan. Gambar 10.8a
menunjukkan implementasi yang mungkin menggunakan langkah-langkah ini.
Multiplier dan multiplicand dimuat ke dua register (Q dan M). Sebuah daftar ketiga,
membuat perkalian yang terkomputerisasi lebih efisien. Pertama, kita bisa melakukan
penambahan berjalan pada produk parsial daripada menunggu sampai akhir. Hal ini
menghilangkan kebutuhan untuk penyimpanan semua produk parsial; register sedikit
diperlukan. Kedua, kita dapat menghemat waktu pada generasi produk parsial. Untuk
setiap 1 pada multiplier, add dan operasi pergeseran yang diperlukan; tetapi untuk
setiap 0, hanya pergeseran diperlukan. Gambar 10.8a menunjukkan implementasi
yang mungkin menggunakan langkah-langkah ini. Multiplier dan multiplicand dimuat
ke dua register (Q dan M). Sebuah daftar ketiga,

Page 17 of 48

Computer Arithmetics/BAB 10

Brawijaya University

Gambar Implementasi 10.8 Hardware Unsigned Binary Perkalian

Gambar 10.9 Flowchart untuk Unsigned Binary Perkalian


Page 18 of 48

2014

Computer Arithmetics/BAB 10

Brawijaya University

2014

Register A, juga dibutuhkan dan pada awalnya diatur ke 0. Ada juga C Register 1-bit,
diinisialisasi ke 0, yang memegang potensi carry bit yang dihasilkan dari
penambahan.
Operasi dari multiplier adalah sebagai berikut. Kontrol logika membaca bit

multiplier satu per satu. Jika Q0 adalah 1, maka multiplicand ditambahkan ke register
A dan hasilnya disimpan dalam register A, dengan bit C digunakan untuk overflow.
Maka semua bit dari register C, A, dan Q dialihkan ke kanan sedikit, sehingga bit C
masuk ke An-1, A0 masuk ke Qn-1 dan Q0 hilang. Jika Q0 adalah 0, maka tidak ada
penambahan dilakukan, hanya pergeseran. Proses ini diulang untuk setiap bit dari
multiplier asli. Menghasilkan produk 2n-bit terdapat dalam register A dan Q. Sebuah
flowchart operasi tersebut ditunjukkan pada Gambar 10.9, dan contoh diberikan
dalam Gambar 10.8b. Perhatikan bahwa pada siklus II, ketika bit multiplier adalah 0,
tidak ada add operasi.
Twos Complement Multiplication
Kita telah melihat bahwa penambahan dan pengurangan dapat dilakukan pada
nomor dalam notasi two complement dengan mengolah mereka sebagai unsigned
integer. Pertimbangkan

1001
+0011
1100
Jika angka-angka ini dianggap unsigned integer, maka kita menambahkan 9 (1001)
ditambah 3 (0011) untuk mendapatkan 12 (1100). Seperti berpasangan melengkapi
bilangan bulat, kita menambahkan -7 (1001) sampai 3 (0011) untuk mendapatkan -4
(1100).

Gambar 10.10 Multiplikasi TwoUnsigned 4-Bit Integer Menghasilkan 8-Bit.

Sayangnya, skema sederhana ini tidak akan bekerja untuk perkalian. Untuk
melihat hal ini, pertimbangkan lagi Gambar 10.7. Kami dikalikan 11 (1011) sebesar
13 (1101) untuk mendapatkan 143 (10001111). Jika kita menafsirkan ini sebagai
angka two complement, kita memiliki -5 (1011) kali -3 (1101) sama dengan -113
Page 19 of 48

Computer Arithmetics/BAB 10

Brawijaya University

(10001111). Contoh ini menunjukkan bahwa perkalian langsung tidak akan bekerja
jika kedua multiplicand dan multiplier negatif. Bahkan, itu tidak akan berhasil jika

2014

salah satu multiplicand atau multiplier negatif. Untuk membenarkan pernyataan ini,
kita harus kembali ke Gambar 10.7 dan menjelaskan apa yang sedang dilakukan
dalam hal operasi dengan kekuatan 2. Ingat bahwa setiap bilangan biner unsigned
dapat dinyatakan sebagai jumlah dari kekuatan 2. Dengan demikian,

Selanjutnya, perkalian bilangan biner dengan 2n dilakukan dengan menggeser


nomor yang bit n kiri. Dengan ini dalam pikiran, Gambar 10.10 recasts Gambar 10.7
untuk membuat generasi produk parsial dengan perkalian eksplisit. Satu-satunya
perbedaan pada Gambar 10.10 adalah bahwa ia mengakui bahwa produk parsial
harus dilihat sebagai angka 2n -bit yang dihasilkan dari n-bit multiplicand.
Dengan demikian, sebagai unsigned integer, 4-bit multiplicand 1011 disimpan
dalam sebuah kata 8-bit 00001011. Setiap produk parsial (selain itu untuk 20) terdiri
dari angka ini bergeser ke kiri, dengan posisi kosong di sebelah kanan diisi dengan nol
(misalnya, pergeseran ke kiri dari dua tempat menghasilkan 00.101.100).
Sekarang kita dapat menunjukkan bahwa perkalian langsung tidak akan bekerja
jika multiplicand negatif. Masalahnya adalah bahwa setiap kontribusi dari multiplicand
negatif sebagai produk parsial harus angka negatif di lapangan 2n-bit; bit tanda
produk parsial harus berbaris. Hal ini ditunjukkan pada Gambar 10.11, yang
menunjukkan bahwa perkalian 1001 oleh 0011. Jika ini dianggap sebagai unsigned
integer, perkalian 9 * 3 = 27 hasil sederhana. Namun, jika 1001 ditafsirkan

Gambar 10.11 Perbandingan Multiplikasi Unsigned dan Two Complement Integer

sebagai nilai two complement -7, maka setiap produk parsial harus sejumlah two
complement negatif 2n (8) bit, seperti yang ditunjukkan pada Gambar 10.11b.
Catatan bahwa ini dicapai dengan padding keluar setiap produk parsial ke kiri dengan
1s biner.
Page 20 of 48

Computer Arithmetics/BAB 10

Brawijaya University

Jika multiplier negatif, perkalian langsung juga tidak akan bekerja. Alasannya
adalah bahwa bit multiplier tidak lagi sesuai dengan pergeseran atau perkalian yang

2014

harus terjadi. Untuk contoh, 4-bit angka desimal -3 ditulis 1101 di two complement.
Jika kita hanya mengambil produk parsial berdasarkan setiap posisi bit, kita akan
memiliki korespondensi berikut:

Bahkan, apa yang diinginkan adalah -(21 + 20). Jadi multiplier ini tidak dapat digunakan
secara langsung dengan cara yang telah kita jelaskan.
Ada beberapa cara keluar dari dilema ini. Satu akan mengkonversi baik multiplier
dan multiplicand ke angka positif, melakukan perkalian, dan kemudian mengambil two
complement hasilnya jika dan hanya tanda dua angka aslinya berbeda. Pelaksana
lebih suka menggunakan teknik yang tidak memerlukan langkah transformasi akhir
ini. Salah satu yang paling umum adalah algoritma Booth. Algoritma ini juga memiliki
manfaat mempercepat proses perkalian, relatif terhadap pendekatan yang lebih
sederhana.
Algoritma Booth digambarkan pada Gambar 10.12 dan dapat digambarkan
sebagai berikut. Seperti sebelumnya, multiplier dan multiplicand ditempatkan di Q dan
register M,

Gambar 10.12 Algoritma Booth untuk Two Complement Perkalian


Page 21 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Gambar 10.13 Contoh Algoritma Booth (7 * 3)

masing-masing. Ada juga 1-bit register ditempatkan secara logis ke kanan sedikit
signifikan (Q0) dari Q mendaftar dan ditunjuk-Q 1; penggunaannya dijelaskan
kemudian. Hasil perkalian akan muncul di register A dan Q. A dan Q-1 diinisialisasi ke
0. Seperti sebelumnya, kontrol logika memindai bit multiplier satu per satu. Sekarang,
karena setiap bit diteliti, sedikit ke kanan juga diperiksa. Jika dua bit yang sama (1-1
atau 0-0), maka semua bit dari A, Q, dan Q-1 register bergeser ke kanan 1 bit. Jika
dua bit berbeda, maka multiplicand ditambahkan atau dikurangi dari register A,
tergantung pada apakah dua bit 0-1 atau 1-0. Setelah penambahan atau
pengurangan, pergeseran yang tepat terjadi. Dalam kedua kasus, pergeseran yang
tepat adalah sedemikian rupa sehingga bit paling kiri dari A, yaitu An-1, tidak hanya
digeser ke An-2, tetapi juga tetap di An-1. Hal ini diperlukan untuk menjaga tanda
nomor A dan T. Hal ini dikenal sebagai pergeseran aritmatika, karena
mempertahankan bit tanda.
Gambar 10.13 menunjukkan urutan kejadian dalam algoritma Booth untuk
perbanyakan 7 dengan 3. Lebih kompak, operasi yang sama digambarkan pada
Gambar 10.14a. Sisa Gambar 10.14 memberikan contoh-contoh lain dari algoritma.
Seperti dapat dilihat, itu bekerja dengan kombinasi angka positif dan negatif.
Perhatikan juga efisiensi algoritma. Blok 1s atau 0s yang melompati, dengan rata-rata
hanya satu penambahan atau pengurangan per blok.

Page 22 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Gambar 10.14 Contoh Menggunakan Algoritma Booth

Mengapa algoritma Booth bekerja? Pertimbangkan pertama kasus multiplier positif.


Secara khusus, mempertimbangkan multiplier positif yang terdiri dari satu blok dari 1s
dikelilingi oleh 0s (misalnya, 00011110). Seperti kita ketahui, perkalian dapat dicapai
dengan menambahkan salinan multiplicand:

Jumlah operasi tersebut dapat dikurangi menjadi dua jika kita amati itu

Sehingga produk dapat dihasilkan oleh satu tambahan dan satu pengurangan
multiplicand. Skema ini meluas ke sejumlah blok 1s di pengganda, termasuk kasus di
mana satu 1 diperlakukan sebagai blok.

Algoritma Booth sesuai dengan skema ini dengan melakukan pengurangan ketika
pertama 1 blok dijumpai (1-0) dan tambahan ketika ujung blok ini ditemui (0-1).
Page 23 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Untuk menunjukkan bahwa skema yang sama bekerja untuk multiplier negatif, kita
perlu mengamati berikut. Misalkan X angka negatif dalam notasi melengkapi dua-dua:

Kemudian nilai X dapat dinyatakan sebagai berikut:

Pembaca dapat memverifikasi ini dengan menerapkan algoritma dengan nomor pada
Tabel 10.2. Bit paling kiri dari X adalah 1, karena X adalah negatif. Asumsikan bahwa
paling kiri 0 adalah di k th posisi. Dengan demikian, X adalah dalam bentuk

Maka nilai X adalah

Dari Persamaan (10.3), kita dapat mengatakan bahwa

Mengatur ulang

Mengganti Persamaan (10.7) ke dalam Persamaan (10.6), kita memiliki

Akhirnya kita dapat kembali ke algoritma Booth. Mengingat representationof X


[Persamaan (10.5)], jelas bahwa semua bit dari x0 hingga paling kiri 0 ditangani
dengan benar karena mereka menghasilkan semua istilah dalam Persamaan (10.8),
tetapi (-2k + 1) dan dengan demikian adalah dalam bentuk yang tepat. Sebagai scan
algoritma atas paling kiri 0 dan pertemuan berikutnya 1 (2k + 1), 1-0 transisi terjadi
dan pengurangan yang terjadi (-2k + 1). Ini adalah istilah yang tersisa dalam
Persamaan (10.8).

Page 24 of 48

Computer Arithmetics/BAB 10

Brawijaya University

Sebagai contoh, perhatikan perbanyakan beberapa multiplicand oleh (-6). Dalam


representasi twocomplement, menggunakan kata 8-bit, (-6) direpresentasikan
sebagai 11111010. Dengan Persamaan (10.4), kita tahu bahwa

2014

yang pembaca dapat dengan mudah memverifikasi. Dengan demikian,

Menggunakan Persamaan (10.7),

yang pembaca dapat memverifikasi yang masih M * (-6).

Kita bisa melihat bahwa algoritma Booth sesuai dengan skema ini. Ia melakukan
pengurangan ketika pertama 1 dijumpai (10), tambahan ketika (01) dijumpai, dan
akhirnya pengurangan lain ketika pertama 1 blok berikutnya 1s dijumpai. Dengan
demikian, algoritma Booth melakukan penambahan lebih sedikit dan hasil
pengurangan dari algoritma yang lebih sederhana.
Division
Divisi agak lebih kompleks daripada perkalian tetapi didasarkan pada prinsipprinsip umum yang sama. Seperti sebelumnya, dasar untuk algoritma ini adalah
pendekatan kertas dan pensil, dan operasi melibatkan pergeseran berulang-ulang dan
penambahan atau pengurangan. Gambar 10.15 menunjukkan contoh pembagian
panjang integer biner unsigned. Ini adalah pelajaran untuk menggambarkan proses
secara rinci. Pertama, potongan-potongan dividen diperiksa dari kiri ke kanan, sampai
set bit diperiksa merupakan angka yang lebih besar dari atau sama dengan pembagi;
ini disebut sebagai pembagi mampu membagi nomor. Sampai peristiwa ini terjadi, 0s
ditempatkan dalam hasil bagi dari kiri ke kanan. Ketika peristiwa itu terjadi, 1
ditempatkan di hasil bagi dan pembagi dikurangi dari dividen parsial. Hasilnya disebut
sebagai sisa parsial.

Page 25 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Gambar 10.15 Contoh Divisi Unsigned Binary Integer

Dari titik ini, divisi mengikuti pola siklik. Pada setiap siklus, bit tambahan dari
dividen yang ditambahkan ke sisa parsial sampai hasilnya lebih besar dari atau sama
dengan pembagi. Seperti sebelumnya, pembagi dikurangi dari angka ini untuk
menghasilkan sisa parsial baru. Proses berlanjut sampai semua bit dari dividen habis.
Gambar 10.16 menunjukkan algoritma mesin yang sesuai dengan proses pembagian
panjang. Pembagi ditempatkan dalam daftar M, dividen di Q mendaftar. di setiap

Gambar 10.16 Flowchart untuk Unsigned Binary Divisi

Page 26 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Gambar 10.17 Contoh Perbaikan Divisi TwoComplement (7/3)

langkah, A dan Q register bersamaan dialihkan ke kiri 1 bit. M dikurangi dari A untuk
menentukan apakah A membagi remainder.3 parsial Jika tidak, maka Q0 mendapat
1bit a. Jika tidak, Q0 mendapat 0 bit dan M harus ditambahkan kembali ke A untuk
mengembalikan nilai sebelumnya. Jumlah tersebut kemudian dikurangi, dan proses
berlanjut untuk langkah-langkah n. Pada akhirnya, hasil bagi adalah dalam register Q
dan sisanya adalah dalam register A.
Proses ini terdapat beberapa kesulitan, diperluas ke angka negatif. Kami berikan
di sini satu pendekatan untuk angka twocomplement. Contoh dari pendekatan ini
ditunjukkan pada Gambar 10.17.
Algoritma ini mengasumsikan bahwa pembagi V dan dividen D yang positif dan | V
| 6 | D |. Jika | V | = | D |, maka hasil bagi Q = 1 dan sisanya R = 0. Jika | V | 7 | D
|, maka Q = 0 dan R = D. Algoritma dapat diringkas sebagai berikut:
1. Muat komplemen dua-dua dari pembagi ke register M; yaitu, register M berisi
negatif pembagi. Memuat dividen ke dalam register A, Q. Dividen tersebut
harus dinyatakan sebagai angka positif 2n-bit. Jadi, misalnya, 4-bit 0111
menjadi 00.000.111
2. Pergeseran A, Q meninggalkan 1 posisi bit.
3. Menjalankan A dA - M. Operasi ini mengurangi angka pembagi dari isi A.
4. a. Jika hasilnya non-negatif (bit yang paling signifikan dari A = 0), kemudian
mengatur Q0 d1.
Page 27 of 48

Computer Arithmetics/BAB 10

Brawijaya University

b. Jika hasilnya negatif (bit yang paling signifikan dari A = 1), kemudian
mengatur Q0 d0 dan

2014

5. Ulangi langkah 2 sampai 4 sebanyak yang ada posisi bit di Q.


6. Sisanya adalah di A dan hasil bagi dalam Q.
Untuk mengatasi angka negatif, kami menyadari bahwa sisanya didefinisikan oleh

D=Q*V+R
Artinya, sisanya adalah nilai R yang dibutuhkan untuk persamaan sebelumnya
menjadi valid. Perhatikan contoh berikut pembagian integer dengan semua
kemungkinan kombinasi dari tanda-tanda D dan V:

Pembaca akan mencatat dari Gambar 10.17 bahwa (-7)> (3) dan (7)> (- 3)
menghasilkan sisa-sisa yang berbeda. Kita melihat bahwa besaran Q dan R tidak
terpengaruh oleh tanda-tanda input dan bahwa tanda-tanda Q dan R mudah
diturunkan dari tanda-tanda D dan V. Secara khusus, tanda (R) = tanda (D) dan
tanda (Q) = tanda (D) * tanda (V). Oleh karena itu, salah satu cara untuk melakukan
pembagian two complement adalah untuk mengkonversi operan ke nilai-nilai unsigned
dan, pada akhirnya, untuk menjelaskan tanda-tanda dengan komplementasi mana
diperlukan. Ini adalah metode pilihan untuk algoritma mengembalikan divisi
[PARH10].

10.4 FLOATING-POINT REPRESENTATION


PRINSIP
Dengan notasi fixed-point (misalnya, complement ke-2) adalah mungkin untuk
mewakili berbagai bilangan bulat positif dan negatif berpusat pada atau dekat 0.
Dengan asumsi titik biner atau radix tetap, format ini memungkinkan representasi
angka dengan pecahan yang komponen nasional juga. Pendekatan ini memiliki
keterbatasan. Jumlah yang sangat besar tidak bisa diwakilkan, juga tidak dapat fraksi
yang sangat kecil. Selain itu, bagian pecahan dari hasil bagi dalam pembagian dua
angka besar bisa hilang.
Page 28 of 48

Computer Arithmetics/BAB 10

Brawijaya University

Untuk angka desimal, kita menyiasati keterbatasan ini dengan menggunakan notasi

2014

ilmiah. Dengan demikian, 976.000.000.000.000 dapat direpresentasikan sebagai 9,76


* 10 ^ 14, dan
0,0000000000000976 Dapat direpresentasikan sebagai 9,76 * 10 ^ -14. Apa yang
telah kita lakukan, pada dasarnya, adalah dinamis untuk geser titik desimal ke lokasi
yang nyaman dan menggunakan eksponen 10 untuk melacak titik desimal. Hal ini
memungkinkan kisaran angka yang sangat besar dan sangat kecil untuk diwakili
dengan hanya beberapa digit.
Pendekatan yang sama ini dapat diambil dengan angka biner. Kita dapat mewakili
nomor dalam bentuk

{ S * B{ E
Nomor ini dapat disimpan dalam kata biner dengan tiga bidang:

Tanda : Plus atau Minus

Significand S

Eksponen E

Gambar 10.18 Contoh 32-Bit Floating-Point Format

Basis B implisit dan tidak perlu disimpan karena itu adalah sama untuk semua
nomor. Biasanya, diasumsikan bahwa titik radix adalah di sebelah kanan paling kiri,
atau paling signifikan, sedikit Signifikan. Artinya, ada satu bit di sebelah kiri titik
radix. Prinsip-prinsip yang digunakan dalam mewakili angka floating-point biner
terbaik dijelaskan dengan sebuah contoh. Gambar 10.18a menunjukkan 32-bit format
floating-point yang khas. Toko bit paling kiri tanda nomor (0 = positif, 1 = negatif).
Nilai eksponen disimpan dalam 8 bit berikutnya. Representasi yang digunakan dikenal
Page 29 of 48

Computer Arithmetics/BAB 10

Brawijaya University

sebagai representasi bias. Sebuah nilai tetap, yang disebut bias, dikurangi dari

2014

lapangan untuk mendapatkan nilai eksponen benar. Biasanya, bias sama (2k-1-1), di
mana k adalah jumlah bit dalam eksponen biner. Dalam hal ini, bidang 8-bit
menghasilkan angka 0 sampai 255. Dengan bias 127 (27-1), nilai-nilai eksponen
benar berada di kisaran -127 sampai 128. Dalam contoh ini, dasar diasumsikan 2.
Tabel 10.2 menunjukkan representasi bias untuk 4-bit bilangan bulat. Perhatikan
bahwa ketika bit representasi bias diperlakukan sebagai unsigned integer, besaran
relatif dari angka tidak berubah. Sebagai contoh, di kedua representasi bias dan

unsigned, jumlah terbesar adalah 1.111 dan jumlah terkecil adalah 0000. Hal ini tidak
benar dari tanda-besarnya atau berpasangan melengkapi representasi. Sebuah
keuntungan dari representasi bias adalah bahwa angka floating-point nonnegatif
dapat diperlakukan sebagai bilangan bulat untuk tujuan perbandingan. Bagian akhir
dari kata (23 bit dalam kasus ini) adalah significand.4 Setiap angka floating-point
dapat dinyatakan dalam banyak cara.

Untuk

menyederhanakan

operasi

pada

angka

floating-point,

itu

biasanya

diperlukan bahwa mereka dinormalisasi. Sejumlah normal adalah satu di mana digit
paling signifikan dari significand adalah nol. Untuk basis 2 representasi, angka normal
karena itu adalah satu di mana bit yang paling signifikan dari significand adalah salah
satu. Seperti yang telah disebutkan, konvensi khas adalah bahwa ada satu bit di
sebelah kiri titik radix. Dengan demikian, sejumlah nol normal adalah satu bentuk

di mana b adalah salah digit biner (0 atau 1). Karena bit yang paling signifikan adalah
selalu salah, adalah tidak perlu untuk menyimpan sedikit ini; melainkan tersirat.
Dengan demikian, bidang 23-bit yang digunakan untuk menyimpan significand 24-bit
dengan nilai di setengah terbuka interval [1, 2). Mengingat jumlah yang tidak normal,
jumlah tersebut dapat dinormalisasi dengan menggeser titik radix di sebelah kanan
paling kiri 1 bit dan menyesuaikan eksponen sesuai.
Gambar 10.18b memberikan beberapa contoh nomor yang tersimpan dalam
format ini. Untuk setiap contoh, di sebelah kiri adalah bilangan biner; di tengah
Page 30 of 48

Computer Arithmetics/BAB 10

Brawijaya University

adalah pola bit yang sesuai; di sebelah kanan adalah nilai desimal. Perhatikan fitur
berikut:

2014

Tanda disimpan dalam bit pertama kata.

Bit pertama dari significand sejati selalu 1 dan tidak perlu disimpan dalam
bidang significand.

Nilai 127 ditambahkan ke eksponen benar disimpan dalam bidang


eksponen.

Nilai Dasar adalah 2

Sebagai perbandingan, Gambar 10.19 menunjukkan kisaran angka yang dapat


direpresentasikan dalam kata 32-bit. Menggunakan representasi komplemen bilangan
bulat berpasangan, semua bilangan bulat dari -2 ^ 31-2 ^ 31-1 dapat diwakili,
dengan total 2 ^ 32 nomor yang berbeda. Dengan contoh format yang floating-point
dari Gambar 10.18, rentang berikut nomor yang mungkin:

Angka negatif antara - (2 2^-23) * 2^128 dan -2^-127

Bilangan positif antara 2^-127 dan (2 2^-23) * 2^128

Gambar 10.19 Bilangan dinyatakan dalam Contoh Format 32-Bit

Lima daerah pada garis bilangan tidak termasuk dalam rentang ini:

Angka negatif kurang dari - (2 2^-23) * 2^128, yang disebut negative


overflow

Angka negatif lebih besar dari 2^-127, disebut negative underflow

Nol

Angka positif kurang dari 2^127, disebut positive underflow

Angka positif kurang dari (2 - 2^-23) x 2^128 , disebut positive overflow


Page 31 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Representasi yang disajikan tidak akan mengakomodasi nilai 0. Namun, seperti yang

akan kita lihat, sebenarnya representasi floating-point termasuk pola bit khusus untuk
menunjuk nol. Overflow terjadi ketika operasi aritmatika menghasilkan nilai absolut
lebih besar daripada yang dapat dinyatakan dengan eksponen dari 128 (misalnya,

2^120 * 2^100 = 2^220). Underflow terjadi ketika besarnya pecahan terlalu kecil
(misalnya, 2^-120 * 2^-100 = 2^-220). Underflow merupakan masalah kurang
serius karena hasilnya umumnya dapat memuaskan didekati dengan 0.
Penting untuk dicatat bahwa kami tidak mewakili nilai-nilai yang lebih individual
dengan notasi floating-point. Jumlah maksimum nilai yang berbeda yang dapat
diwakili dengan 32 bit masih 2^32. Apa yang kita lakukan adalah untuk menyebarkan
angka-angka dalam dua rentang, satu positif dan satu negatif. Dalam prakteknya,
kebanyakan angka floating-point yang satu akan ingin mewakili diwakili hanya sekitar.
Namun, untuk bilangan bulat berukuran sedang, representasi yang tepat. Juga,
perhatikan bahwa angka diwakili dalam notasi floating-point tidak merata spasi
sepanjang garis bilangan, seperti nomor fixed-point. Nilai yang mungkin lebih dekat
bersama-sama dekat asal dan jauh terpisah saat Anda bergerak menjauh, seperti
yang ditunjukkan pada Gambar 10.20. Ini adalah salah satu trade-off floating-point
matematika: Banyak perhitungan menghasilkan hasil yang tidak tepat dan harus
dibulatkan ke nilai terdekat yang notasi dapat mewakili.
Dalam jenis format digambarkan pada Gambar 10.18, ada trade-off antara
rentang dan presisi. Contoh ini menunjukkan 8 bit dikhususkan untuk eksponen dan
23 sampai Signifikan. Jika kita meningkatkan jumlah bit dalam eksponen, kami
memperluas kisaran angka dinyatakan. Tapi karena hanya tetap jumlah nilai yang
berbeda dapat dinyatakan, kita telah mengurangi kepadatan angka-angka dan karena
presisi. Satu-satunya cara untuk meningkatkan range dan presisi adalah dengan
menggunakan

lebih

banyak

bit.

Dengan

demikian,

kebanyakan

komputer

menawarkan, setidaknya, nomor presisi tunggal dan presisi ganda nomor. Sebagai
contoh, prosesor dapat mendukung presisi tunggal f Ormat dari 64 bit, dan format
double-presisi 128 bit. Jadi ada trade-off antara jumlah bit dalam eksponen dan
jumlah bit dalam Signifikan. Tapi ini lebih rumit dari itu. Basis tersirat dari eksponen
tidak perlu 2. IBM S / 390 arsitektur, misalnya, menggunakan basis 16 [ANDE67b].
Format terdiri dari eksponen 7-bit dan 24-bit significand.

Page 32 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Gambar 10.20 Densitas Bilangan Terapung-Point

Keuntungan dari menggunakan eksponen yang lebih besar adalah bahwa rentang
yang lebih besar dapat dicapai untuk jumlah yang sama eksponen bit. Tapi ingat,
kami belum meningkatkan jumlah nilai yang berbeda yang dapat diwakili. Ini, untuk
format tetap, basis eksponen yang lebih besar memberikan rentang yang lebih besar
dengan mengorbankan kurang presisi.
IEEE Standard for Binary Floating-Point Representation
Representasi floating-point yang paling penting didefinisikan dalam IEEE Standard
754, diadopsi pada tahun 1985 dan direvisi pada tahun 2008. Standar ini
dikembangkan untuk memudahkan portabilitas program dari satu prosesor ke yang
lain dan untuk mendorong perkembangan canggih, program berorientasi numerik.
Standar ini telah diadopsi secara luas dan digunakan pada hampir semua prosesor
kontemporer dan coprocessors aritmatika. IEEE 754-2008 mencakup baik biner dan
desimal representasi floating-point. Dalam bab ini, kita hanya berurusan dengan
representasi biner.
IEEE 754-2008 mendefinisikan berbagai jenis format floating-point berikut:

Format aritmatika: Semua operasi wajib didefinisikan oleh standar didukung


oleh format. Format dapat digunakan untuk mewakili operan floating-point
atau hasil untuk operasi dijelaskan dalam standar.

Format dasar: Format ini mencakup lima representasi floating-point, tiga


biner dan dua desimal, yang pengkodean yang ditentukan oleh standar, dan
yang dapat digunakan untuk aritmatika. Setidaknya salah satu format dasar
diimplementasikan dalam setiap pelaksanaan sesuai.

Interchange format: A sepenuhnya ditentukan, tetap-panjang encoding


biner yang memungkinkan pertukaran data antara platform yang berbeda dan
yang dapat digunakan untuk penyimpanan.
Page 33 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Tiga format biner dasar memiliki panjang bit dari 32, 64, dan 128 bit, dengan

eksponen 8, 11, dan 15 bit, masing-masing (Gambar 10.21). Tabel 10.3 merangkum
karakteristik dari tiga format. Dua format desimal dasar memiliki panjang bit dari 64 dan
128 bit. Semua format dasar juga jenis format yang aritmatika (dapat digunakan untuk
operasi aritmatika) dan jenis format pertukaran (platform independen).
Beberapa format lain yang ditentukan dalam standar. Biner 16 Format hanya
format pertukaran dan ditujukan untuk penyimpanan nilai saat presisi tinggi tidak
diperlukan. Biner {k} Format dan desimal {k} Format adalah format interchange dengan
total panjang k bit dan dengan panjang yang ditetapkan untuk significand dan

eksponen. Format harus kelipatan dari 32 bit; sehingga format yang ditetapkan untuk k
= 160, 192, dan seterusnya. Kedua keluarga format juga format aritmatika.
Selain

itu,

standar

mendefinisikan

format

presisi

diperpanjang,

yang

memperpanjang format dasar yang didukung dengan memberikan bit tambahan dalam
eksponen (extended range) dan di significand (presisi diperpanjang). Format yang tepat
tergantung implementasi, tetapi standar tempat kendala tertentu pada panjang
eksponen dan significand. Format ini jenis format yang aritmatika tetapi tidak jenis
format pertukaran. Format diperpanjang yang akan digunakan untuk perhitungan
menengah. Dengan presisi mereka yang lebih besar, format diperpanjang mengurangi
kemungkinan hasil akhir yang telah terkontaminasi oleh kesalahan roundoff berlebihan;
dengan jangkauan mereka lebih besar, mereka juga mengurangi kemungkinan overflow
menengah batal perhitungan yang hasil akhir akan representable dalam format dasar.
Motivasi tambahan untuk format diperpanjang adalah bahwa hal itu memberi beberapa
manfaat dari format dasar lebih besar tanpa menimbulkan hukuman waktu biasanya
berhubungan dengan presisi tinggi.

Page 34 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Gambar 10.21 IEEE 754 Format

Table 10.3 IEEE 754 Format Parameters

Akhirnya, IEEE 754-2008 mendefinisikan format presisi diperpanjang sebagai


format dengan presisi dan jangkauan yang didefinisikan di bawah kontrol pengguna.
Sekali lagi, format ini dapat digunakan untuk perhitungan menengah, tetapi tempat
standar tidak ada kendala atau format atau panjang.
Page 35 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Tabel 10.4 menunjukkan hubungan antara format yang ditentukan dan jenis format
yang. Tidak semua pola bit dalam format IEEE diinterpretasikan dengan cara yang

biasa; sebagai gantinya, beberapa pola bit yang digunakan untuk mewakili nilai-nilai
khusus. Tabel 10.5 menunjukkan nilai-nilai yang ditugaskan ke berbagai pola bit. Nilai
eksponen semua nol (0 bit) dan semua orang (1 bit) mendefinisikan nilai-nilai khusus.
Kelas berikut nomor diwakili:

Untuk nilai eksponen dalam kisaran 1 sampai 254 untuk format 32-bit, 1
sampai 2046 untuk format 64-bit, dan 1 sampai 16.382, angka floating-point
nol normal diwakili. Eksponen bias, sehingga berbagai eksponen adalah -126
sampai 127 untuk format 32-bit, dan sebagainya. Sebuah angka normal
membutuhkan 1 bit ke kiri dari titik biner; bit ini tersirat, memberikan efektif
24-bit, 53-bit, atau 113-bit significand. Karena salah satu bit tersirat, bidang
yang sesuai dalam format biner disebut sebagai bidang Signifikan tertinggal.

Eksponen dari nol bersama-sama dengan sebagian kecil dari nol mewakili nol
positif atau negatif, tergantung pada bit tanda. Seperti yang telah disebutkan,
hal ini berguna untuk memiliki nilai yang tepat dari 0 diwakili.

Table 10.4 IEEE Formats

Page 36 of 48

Computer Arithmetics/BAB 10
Table 10.5 Interpretation of IEEE 754 Floating-Point Numbers

Eksponen

semua

yang

bersama-sama

dengan

Brawijaya University

sebagian

kecil

dari

2014

nol

merepresentasikan nilai positif atau negatif, tergantung pada bit tanda. Hal ini
juga berguna untuk memiliki representasi tak terhingga. Hal ini membuat itu
kepada pengguna untuk memutuskan apakah untuk mengobati melimpah
sebagai kondisi kesalahan atau untuk membawa nilai? dan lanjutkan dengan
program apa pun yang sedang dijalankan.
Page 37 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Eksponen dari nol bersama-sama dengan fraksi nol mewakili sejumlah

subnormal. Dalam hal ini, sedikit di sebelah kiri titik biner nol dan eksponen
benar adalah -126 atau -1.022. Angka tersebut positif atau negatif tergantung
pada bit tanda.

Eksponen semua yang bersama-sama dengan fraksi nol diberikan nilai NaN,
yang berarti tidak Nomor, dan digunakan untuk sinyal berbagai kondisi
pengecualian.
Signifikansi angka di bawah normal dan NaN dibahas dalam Bagian 10.5.

10.5 FLOATING POINT ARITHMETIC


Tabel 10.6 merangkum operasi dasar untuk aritmatika floating-point. Untuk
penambahan dan pengurangan, perlu untuk memastikan bahwa kedua operan
memiliki nilai eksponen yang sama. Hal ini mungkin memerlukan pergeseran titik
radix pada salah satu operan untuk mencapai kesejajaran. Perkalian dan pembagian
yang lebih mudah. Sebuah operasi floating-point dapat menghasilkan salah satu dari
kondisi ini:
Eksponen overflow: Sebuah eksponen positif melebihi kemungkinan eksponen
maksimum nilai. Dalam beberapa sistem, hal ini dapat ditunjuk sebagai + atau -.
Eksponen underflow: Sebuah eksponen negatif adalah kurang dari kemungkinan
nilai eksponen minimum (misalnya, -200 kurang dari -127). Ini berarti bahwa jumlah
initerlalu kecil untuk dipresentasikan, dan dapat dilaporkan sebagai 0.

Tabel 10.6 Floating-Point Bilangan dan Operasi Aritmatika

Page 38 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Signifikan underflow: Dalam proses menyelaraskan significands, angka


mungkin mengalir dari ujung kanan Signifikan. Seperti yang akan kita bahas,
beberapa bentuk pembulatan diperlukan.

Signifikan overflow: Penambahan dua significands dari tanda yang sama dapat
menyebabkan carry dari bit yang paling signifikan. Hal ini bisa diperbaiki
dengan penataan kembali, seperti yang akan kita jelaskan.

Dalam aritmatika floating-point, penambahan dan pengurangan ini adalah lebih


kompleks dari perkalian dan pembagian. Hal ini karena kebutuhan untuk
penyelarasan. Ada empat
fase dasar algoritma untuk penambahan dan pengurangan:
1. Memeriksa nol.
2. Sejajarkan significands.
3. Tambah atau kurangi significands.
4. Menormalkan hasilnya.
Sebuah flowchart tipikal ditunjukkan pada Gambar 10.22. Sebuah langkah-demilangkah narasi menekankan fungsi utama yang diperlukan untuk penambahan
floating-point dan pengurangan. Kami mengasumsikan format yang sama dengan
yang Gambar 10.21. Untuk operasi penambahan atau pengurangan, dua operan harus
ditransfer ke register yang akan digunakan oleh ALU. Jika format floating-point
termasuk significand bit implisit, sedikit yang harus dibuat eksplisit untuk operasi.
Tahap 1: Nol cek. Karena penambahan dan pengurangan identik kecuali untuk
perubahan tanda, proses dimulai dengan mengubah tanda pengurang jika itu adalah
operasi kurangi. Selanjutnya, jika salah satu operan adalah 0, yang lainnya dilaporkan
sebagai hasilnya.
Tahap 2: kesejajaran Signifikan. Tahap berikutnya adalah untuk memanipulasi
angka sehingga dua eksponen ini adalah sama.
Dengan melihat kebutuhan untuk menyelaraskan eksponen, mempertimbangkan
penambahan desimal berikut:

Jelas, kita tidak bisa hanya menambahkan significands. Angka pertama harus diatur
dalam posisi yang setara, yaitu, 4 dari angka kedua harus selaras dengan 3 yang
pertama. Dengan kondisi tersebut, dua eksponen akan sama, yang merupakan
Kondisi matematika di mana dua angka dalam bentuk ini dapat ditambahkan. Dengan
demikian

Kesejajaran dapat dicapai dengan menggeser baik jumlah kecil ke kanan


(meningkatkan eksponen) atau pergeseran jumlah besar ke kiri. Karena operasi salah
Page 39 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

satu dapat mengakibatkan hilangnya angka, itu adalah jumlah yang lebih kecil yang
bergeser; Oleh karena itu penting relatif kecil setiap digit yang hilang ini adalah. Itu

Gambar 10.22 Floating-Point Penambahan dan Pengurangan (Z d X {Y)

kesejajaran dicapai dengan berulang kali menggeser bagian yang besarnya significand
tepat 1 digit dan incrementing eksponen sampai dua eksponen ini adalah sama.
(Perhatikan bahwa jika dasar tersirat adalah 16, pergeseran dari 1 digit adalah
pergeseran dari 4 bit.) Jika ini Hasil proses nilai 0 untuk Signifikan, maka nomor lain
dilaporkan sebagai hasilnya. Jadi, jika dua angka memiliki eksponen yang berbeda
secara signifikan, jumlah yang lebih kecil hilang.
Tahap 3: Penambahan. Selanjutnya, dua significands ditambahkan bersamaan,
dengan mempertimbangkan tanda-tanda mereka. Karena tanda-tanda mungkin
berbeda, hasilnya mungkin 0. Ada juga kemungkinan significand meluap dengan 1
digit. Jika demikian, significand hasil digeser kanan dan eksponen bertambah.
Overflow eksponen bisa terjadi sebagai akibatnya; ini akan yang dilaporkan dan
operasi dihentikan.
Tahap 4: Normalisasi. Tahap akhir menormalkan hasilnya. Normalisasi terdiri dari
pergeseran significand digit tersisa sampai digit paling signifikan (bit, atau
4 bit untuk basis-16 eksponen) adalah nol. Setiap pergeseran menyebabkan
penurunan eksponen dan dengan demikian dapat menyebabkan underflow eksponen.
Akhirnya, hasilnya harus dibulatkan dan kemudian dilaporkan. Kami menunda
pembahasan pembulatan sampai setelah diskusi tentang perkalian dan pembagian.

Page 40 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Multiplication and Division


Floating-point perkalian dan pembagian adalah proses jauh lebih sederhana dari
penambahan dan pengurangan, seperti pembahasan berikut menunjukkan.
Kita terlebih dahulu mempertimbangkan perkalian, diilustrasikan pada Gambar
10.23. Pertama, jika salah satu operan adalah 0, 0 dilaporkan sebagai hasilnya.
Langkah selanjutnya adalah menambahkan eksponen. Jika eksponen disimpan dalam
bentuk bias, jumlah eksponen akan dua kali lipat bias. Dengan demikian, nilai bias
yang harus dikurangi dari jumlah tersebut. Hasilnya bisa berupa overflow eksponen
atau underflow, yang akan yang dilaporkan, mengakhiri algoritma.
Jika eksponen produk berada dalam kisaran yang tepat, langkah berikutnya
adalah untuk memperbanyak significands, dengan mempertimbangkan tanda-tanda
mereka. Perkalian dilakukan dengan cara yang sama seperti untuk bilangan bulat.
Dalam hal ini, kita berhadapan dengan sebuah signmagnitude representasi, tapi
rincian yang sama dengan yang untuk representasi twocomplement. Produk ini akan
menjadi dua kali lipat panjang multiplier dan multiplicand. Bit tambahan akan hilang
selama pembulatan.
Setelah produk dihitung, hasilnya kemudian dinormalisasi dan dibulatkan, seperti
yang dilakukan untuk penambahan dan pengurangan. Perhatikan bahwa normalisasi
dapat mengakibatkan underflow eksponen.
Akhirnya, mari kita perhatikan flowchart untuk divisi digambarkan pada Gambar
10.24. Sekali lagi, langkah pertama adalah pengujian untuk 0. Jika pembagi adalah 0,
laporan kesalahan dikeluarkan, atau hasilnya diatur hingga tak terbatas, tergantung
pada pelaksanaannya. Dividen dari 0 hasil 0. Selanjutnya, eksponen pembagi
dikurangi dari eksponen dividen. Hal ini menghilangkan bias, yang harus ditambahkan
kembali. Tes ini kemudian dibuat untuk eksponenunderflow atau overfow.

Page 41 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Gambar 10.23 Floating-Point Perkalian (Z d X * Y)

Precision Considerations
BITS GUARD Kami menyebutkan bahwa, sebelum operasi floating-point, eksponen
dan significand setiap operan dimuat ke register ALU. Dalam kasus Signifikan,
panjang register hampir selalu lebih besar dari panjang Signifikan ditambah sedikit
tersirat. Register mengandung bit tambahan, yang disebut bit penjaga, yang
digunakan untuk pad keluar dari ujung kanan significand dengan 0s.
Alasan penggunaan penjaga bit diilustrasikan pada Gambar 10.25. Perhatikan
angka dalam format IEEE, yang memiliki significand 24-bit, termasuk tersirat 1 bit ke
kiri dari titik biner. Dua angka yang sangat dekat nilai ini adalah x = 1.00g00 *
dan
y = 1.11g11 *

. Jika jumlah yang lebih kecil adalah untuk besubtracted dari yang

lebih besar, itu harus digeser kanan 1 bit untuk menyelaraskan eksponen. Hal ini
ditunjukkan pada Gambar 10,25. Dalam prosesnya, y kehilangan 1 bit penting; itu

Page 42 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Gambar 10.24 Floating-Point Division (Z d X / Y)

Hasilnya adalah

. Operasi yang sama diulang pada bagian (b) dengan

penambahan penjaga bit. Sekarang sedikit signifikan tidak hilang karena kesejajaran,
dan hasilnya adalah
, perbedaan faktor 2 dari jawaban sebelumnya. Ketika radix
adalah 16, hilangnya presisi dapat lebih besar. Sebagai Angka 10.25c dan d acara,
perbedaan dapat menjadi faktor 16.

Page 43 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Pembulatan Detail lain yang mempengaruhi ketepatan hasilnya adalah dengan


kebijakan pembulatan. Hasil dari operasi pada significands umumnya disimpan dalam
register lagi. Ketika hasilnya dimasukkan kembali ke format floating-point, bit ekstra
harus dihilangkan dengan cara seperti untuk menghasilkan hasil yang dekat dengan
hasil yang tepat. Proses ini disebut pembulatan
Sejumlah teknik telah dieksplorasi untuk melakukan pembulatan. Bahkan, standar
IEEE daftar empat pendekatan alternatif:

Putaran ke terdekat: Hasilnya dibulatkan ke nomor representable terdekat.

Putaran ke arah H: Hasilnya dibulatkan ke arah ditambah tak terhingga.

Putaran ke arah H: Hasilnya dibulatkan ke arah tak terhingga negatif.

Putaran ke 0: Hasilnya adalah dibulatkan ke nol.

Mari kita mempertimbangkan setiap kebijakan ini selanjutnya. Putaran ke


terdekat adalah modus pembulatan standar yang tercantum dalam standar dan
didefinisikan sebagai berikut: Nilai representable terdekat dengan hasil tak terhingga
yang tepat akan disampaikan.
Jika bit ekstra, di luar 23 bit yang dapat disimpan, merupakan 10010, maka bit
ekstra berjumlah lebih dari satu-setengah dari posisi bit representable terakhir. Dalam
hal ini, jawaban yang benar adalah dengan menambahkan biner 1 ke representable
bit terakhir, pembulatan sampai dengan nomor representable berikutnya. Sekarang
perhatikan bahwa bit tambahan 01111. Dalam hal ini, bit ekstra berjumlah kurang
dari satu-setengah dari posisi bit representable terakhir. Jawaban yang benar adalah
hanya untuk menjatuhkan bit ekstra (memotong), yang memiliki efek pembulatan ke
nomor representable berikutnya.
Standar ini juga membahas kasus khusus dari bit ekstra dari bentuk 10000. ...
Berikut hasilnya persis pertengahan antara dua nilai representable mungkin. Salah
satu teknik yang mungkin di sini akan selalu memotong, karena hal ini akan menjadi
operasi yang paling sederhana. Namun, kesulitan dengan pendekatan sederhana ini
adalah bahwa ia memperkenalkan bias kecil tapi secara kumulatif menjadi urutan
perhitungan. Apa yang diperlukan adalah metode objektif tentang pembulatan. Salah
satu pendekatan yang mungkin akan mengumpulkan atau bawah berdasarkan nomor
acak sehingga rata-rata, hasilnya akan berisi. Argumen terhadap pendekatan ini
adalah bahwa hal itu tidak menghasilkan diprediksi,Hasil deterministik. Pendekatan
yang diambil oleh standar IEEE adalah untuk memaksa hasil akan lebih: Jika hasil
perhitungan yang tepat di tengah-tengah antara dua representable angka, nilai
dibulatkan jika representable bit terakhir adalah saat 1 dan tidak dibulatkan jika saat
ini 0.
Dua opsi berikutnya, pembulatan ke plus dan minus tak terhingga, berguna dalam
menerapkan teknik yang dikenal sebagai aritmatika interval. Aritmatika Interval
memberikan metode yang efisien untuk kesalahan pemantauan dan pengendalian
dalam floating-point perhitungan

Page 44 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

dengan memproduksi dua nilai untuk setiap hasil. Dua nilai sesuai dengan bagian
bawah dan atas titik akhir dari interval yang berisi hasil yang benar. Lebar interval,
yang merupakan perbedaan antara endpoint atas dan bawah, menunjukkan
keakuratan hasilnya. Jika titik akhir dari interval merupakan tidak representable,
maka endpoint selang dibulatkan ke bawah dan atas, masing-masing. Meskipun lebar
interval dapat bervariasi sesuai dengan implementasi, banyak algoritma telah
dirancang untuk menghasilkan interval sempit. Jika rentang antara batas atas dan
bawah cukup sempit, maka hasil yang cukup akurat telah diperoleh. Jika tidak,
setidaknya kita tahu ini dan dapat melakukan analisis tambahan.
Teknik akhir ditentukan dalam standar bulat menuju nol. Hal ini, pada
kenyataannya, pemotongan sederhana: bit ekstra diabaikan. Hal ini tentunya teknik
sederhana. Namun, hasilnya adalah bahwa besarnya nilai terpotong selalu kurang dari
atau sama dengan nilai asli yang lebih tepat, memperkenalkan prasangka yang
konsisten menuju nol dalam operasi itu. Ini adalah prasangka yang serius karena
mempengaruhi setiap operasi yang ada bit ekstra nol.
IEEE Standard for Binary Floating-Point Arithmetic
IEEE 754 melampaui definisi sederhana format untuk meletakkan praktik dan
prosedur tertentu sehingga floating-point aritmatika menghasilkan yang seragam,
hasil yang diprediksi independen dari platform perangkat keras. Salah satu aspek dari
ini sudah dibahas, yaitu pembulatan. Sub ini melihat tiga topik lain: infinity, NaN, dan
nomor di bawah normal.
INFINITY Infinity aritmatika diperlakukan sebagai kasus membatasi aritmatika nyata,
dengan nilai-nilai tak terhingga yang diberikan interpretasi berikut:

Dengan pengecualian dari kasus-kasus khusus yang dibahas selanjutnya, setiap


operasi aritmatika yang melibatkan infinity akan menghasilkan hasil yang jelas.

QUIET DAN SINYAL Nans A NaN adalah entitas simbolis dikodekan dalam format
floatingpoint, yang ada dua jenis: sinyal and quiet. Sebuah sinyal operasi NaN
pengecualian yang tidak valid setiap kali muncul sebagai operan. Signaling.

Page 45 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Tabel 10.7 Operasi yang Menghasilkan NaN Quiet

NaN mampu menilai variabel yang terinisialisasi dan perangkat aritmatika yang
bukan subjek standar. Sebuah NaN Quiet menyebar melalui hampir setiap operasi
aritmatika tanpa sinyal pengecualian. Tabel 10.7 menunjukkan operasi yang akan
menghasilkan NaN quiet
Perhatikan bahwa kedua jenis NaN memiliki format yang sama umum (Tabel 10.4):
eksponen semua yang dan sebagian nol. Pola bit sebenarnya fraksi nol tergantung
implementasi; nilai fraksi dapat digunakan untuk membedakan NaN tenang dari sinyal
NaN dan untuk menentukan kondisi pengecualian tertentu..
ANGKA subnormal nomor subnormal termasuk dalam IEEE 754 untuk menangani
kasus-kasus eksponen underflow. Ketika eksponen hasilnya menjadi terlalu kecil
(eksponen negatif dengan terlalu besar besaran a), hasilnya subnormalized dengan
hak pergeseran fraksi dan incrementing eksponen untuk setiap shift sampai eksponen
ini dalam kisaran representable.
Gambar 10.26 menggambarkan efek termasuk nomor di bawah normal. Angka-angka
representable dapat dikelompokkan ke dalam interval bentuk [2n, 2n + 1]. dalam
setiap

Gambar 10.26 Pengaruh IEEE 754 Angka subnormal

Page 46 of 48

Computer Arithmetics/BAB 10

Brawijaya University

2014

Interval tersebut, bagian yang eksponen nomor tetap konstan sementara fraksi
bervariasi, menghasilkan jarak seragam nomor representable dalam interval. Seperti
yang kita lebih dekat ke nol, setiap interval berturut-turut adalah setengah lebar
interval sebelumnya tetapi mengandung jumlah yang sama nomor representable.
Oleh karena itu kepadatan nomor representable meningkat saat kita mendekati nol.
Namun, jika hanya nomor biasa digunakan, ada kesenjangan antara jumlah yang
normal terkecil dan 0. Dalam kasus 32-bit IEEE 754 Format, terdapat 223 nomor
representable dalam setiap interval, dan terkecil angka positif representable ini 2 126. Dengan penambahan jumlah subnormal, tambahan 223-1 nomor seragam
ditambahkan antara 0 dan 2-126.
Penggunaan angka di bawah normal disebut underflow sebagai bertahap
[COON81]. Tanpa nomor subnormal, kesenjangan antara terkecil representable
jumlah nol dan nol adalah jauh lebih luas daripada kesenjangan antara terkecil
representable nomor nol dan jumlah yang lebih besar berikutnya. Underflow bertahap
mengisi kesenjangan itu dan mengurangi dampak dari eksponen underflow ke tingkat
yang sebanding dengan roundoff antara angka normal.

Page 47 of 48

Computer Arithmetics/BAB 10

Brawijaya University

REFERENSI

Stalling, W. COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR


PERFORMANCE NINTH EDITION, prentice hall 2013

Page 48 of 48

2014

Вам также может понравиться