Anda di halaman 1dari 49

OPERASI ARITMATIKA

Penjumlahan
contoh
Penjumlahan (overview)

Operasi yang dilakukan selalu penjumlahan, termasuk


sign bit
Pengurangan
Contoh
Pengurangan (overview)
Pengubahan dari bilangan positif ke negatif --> dengan
2’s complement
Contoh:
Diagram Blok – Penjumlahan &
Pengurangan
Overflow (overview)
Jika penjumlahan 2 bilangan n digit menghasilkan
n+1 digit maka disebut dengan overflow
Penjumlahan dengan komputer digital -->
overflow menjadi masalah karena ukuran register
yang terbatas
Komputer perlu mendeteksi adanya overflow
Overflow tidak akan terjadi pada saat penjumlahan
bilangan yang berbeda tanda

T.Informatika UAD
Overflow (overview)
Dideteksi dengan mengamati carry out dengan carry
yang terjadi pada posisi sign bit
Jika sama maka overflow tidak terjadi
Jika beda maka terjadi overflow
Secara digital --> gunakan gerbang XOR
Overflow --> keluaran gerbang = 1
Tidak overflow --> keluaran gerbang = 0
PERKALIAN

Operasi Aritmatika
Pengalian
Operasi pengalian lebih rumit dibandingkan operasi
penjumlahan atau pengurangan, baik dalam hardware
maupun software
Ada beberapa jenis algoritma yang digunakan dalam
bermacam-macam komputer
Perkalian
Contoh
Pengalian – Unsigned Integer
1 0 1 1 Multiplicand (11)
x 1 1 0 1 Mutiplier (13)
1 0 1 1
0 0 0 0 Partial
1 0 1 1 Product
1 0 1 1
1 0 0 0 1 1 1 1 Product (143)
Pengalian – Unsigned Integer
Pengalian meliputi pembentukan beberapa perkalian parsial
untuk setiap digit dalam multiplier. Perkalian parsial ini
kemudian dijumlahkan untuk mendapatkan hasil pengalian
akhir
Bila bit multiplier sama dengan 0, maka hasil pengaliannya
0. Bila bit multiplier 1, maka hasil pengaliannya sama
dengan mutiplier
Hasil pengalian akhir diperoleh dengan menjumlahkan
perkalian parsial tersebut. Setiap hasil perkalian parsial yang
berurutan digeser satu posisi ke kiri relatif terhadap hasil
perkalian sebelumnya.
Pengalian dua buah integer biner n-bit menghasilkan hasil
perkalian sampai 2n-bit
Pengalian – Unsigned Integer
Control Logic membaca bit-bit multiplier satu
persatu
Bila Q0 = 1, multiplicand ditambahkan ke register
A; hasilnya disimpan ke register A; setelah itu
seluruh bit di register C, A dan Q digeser ke kanan
1 bit.
Bila Q0 = 0, tidak terjadi penambahan; seluruh bit
di register C, A dan Q digeser ke kanan 1 bit.
Proses tersebut dilakukan secara berulang untuk
setiap bit multiplier
Hasil perkalian akhir tersimpan di register A dan
Q.
Pengalian – Unsigned Integer
Pengalian – Unsigned Integer

yg diambil selalu Q0

M=1011
Pengalian Komplemen-2
Dengan algoritma pengalian di atas
1011 * 1101 = 1000 1111
Perkalian unsigned integer : 11 * 13 = 143
Perkalian komplemen-2 : -5 * -3 = -113
perkalian tidak berfungsi jika multiplicand dan/atau
multiplier-nya negatif
Perkalian unsign & komplemen-2
Ada beberapa cara untuk menangani hal tersebut:
konversi multiplier dan multicand jadi positif, dikalikan;
cari komplemen-2 dari hasilnya jika tanda multiplier dan
multiplicand berbeda
Menggunakan algoritma lain yang tidak memerlukan
transformasi, misalnya Algoritma Booth
Algoritma Booth
memiliki kelebihan kecepatan proses perkaliannya,
relatif terhadap pendekatan langsung
terdapat register Q(multiplier), M(multiplicand),
A(accumulator), dan register 1-bit di kanan Q yg
ditandai dengan Q-1
hasil perkalian tersimpan di A dan Q
Algoritma Booth
A dan Q-1 diinisialisasi 0
control logic memeriksa bit-bit multiplier satu-
persatu beserta bit di kanannya
Jika kedua bit sama (1-1 atau 0-0), maka seluruh
bit di A, Q dan Q-1 digeser 1-bit ke kanan
jika kedua bit berbeda, multiplicand ditambahkan
(0-1) atau dikurangkan (1-0) ke register A,
kemudian digeser ke kanan
pergeseran menggunakan Arithmetic Shift
contoh : 1011 0101  1101 1010
Algoritma Booth
Algoritma Booth
contoh : 0111 * 0011 = 0001 0101
Algoritma Booth

sub
shift
add

1101
1–0
0–1
1-0

26
Pembagian

Operasi Aritmatika
contoh
Pembagian-Unsigned Binary

1 3
1 1 1 4 7
1 1
3 7
3 3
4

T.Informatika UAD
Pembagian-Unsigned Binary
Pembagian-Unsigned Binary
 1001 0011 : 1011 = 000 1101 + 0100

E A Q
0 1 0 0 1 0 0 1 1 Initial
M = 1011 1 0 0 1 0 0 1 1 0 Shift Left
M’ = 0101 (2 -c) 0 1 0 1
nd

1 0 1 1 1 A  A - M
1 0 1 1 1 0 1 1 1 Set Q0
0 1 1 1 0 1 1 1 0 Shift Left
0 1 0 1
1 0 0 1 1 A  A - M
1 0 0 1 1 1 1 1 1 Set Q0
0 0 1 1 1 1 1 1 0 Shift Left
0 1 0 1
0 1 1 0 0 A  A - M
1 0 1 1
1 0 1 1 1 1 1 1 0 A  A + M (restore A)
0 1 1 1 1 1 1 0 0 Shift Left
0 1 0 1
1 0 1 0 0 A  A - M
1 0 1 0 0 1 1 0 1 Set Q0
remainder quotient
Pembagian Komplemen-2
Muatkan divisor ke M, dividend ke A dan Q. dividend
diekspresikan sbg komplemen-2 2n-bit.
Geser A dan Q 1-bit ke kiri
Bila M dan A memiliki tanda yg sama, lakukan A  A –
M; bila tandanya beda, A  A + M
Operasi tsb akan berhasil bila tanda A sesudah dan
sebelum operasi sama
 bila berhasil (A dan Q = 0), set Q0  1
 bila gagal (A dan Q <> 0), reset Q0  0 dan simpan A sebelumnya
Ulangi langkah 2 sampai 4 utk setiap posisi bit di Q
Bila tanda divisor dan dividend sama maka quotient ada di
Q, jika tidak quotient adalah komplemen-2 dari Q.
Remainder ada di A.
Pembagian Komplemen-2

T.Informatika UAD
Pembagian Komplemen-2
Pembagian Komplemen-2
Pembagian Komplemen-2
(-7)/(3) dan (7)/(-3) akan menghasilkan remainder
yang berbeda. Hal ini disebabkan operasi
pembagian didefinisikan sebagai
D=Q*V+R
dengan
D = dividend
Q = quotient
V = divisor
R = remainder

T.Informatika UAD
Floating Point

Representasi & Operasi Aritmatika


Representasi
Notasi fixed point (radix point) dimungkinkan
untuk merepresentasikan bilangan-bilangan positif
dan negatif dengan komponen pecahan
Pendekatan ini memiliki keterbatasan, bilangan
yang sangat besar dan pecahan yang sangat kecil
tidak dapat direpresentasikan. Bagian quotient
dalam pembagian dua bilangan besar dapat hilang
Dalam desimal, 123.000.000.000.000 dapat
direpresentasikan sebagai 1,23 * 1014;
Demikian juga 0,0000000000000123 dapat
direpresentasikan sebagai 1,23 * 10-14

T.Informatika UAD
Representasi
Pendekatan yang sama dapat dilakukan pada bilangan
biner
+ S * B +E
dengan
 S : significant
 B : base
 E : exponent
Format Floating Point
1 8-bit 23-bit

Implisit selalu “1”

1
1
1
1

 Tanda bilangan  0 : positif, 1 : negatif


 Nilai exponent  8-bit biased : nilai field dikurangi bias (128) utk memperoleh
nilai exponent sebenarnya
 Significand/Mantissa  dg normalisasi (+ 0,1bbb..b * 2 +E), bit terkiri selalu “1”;
shg tdk perlu disimpan (ada secara implisit)  23-bit untuk menyimpan 24-bit
Format Floating Point
Format Floating Point
Range bilangan:
Negatif : - (1 – 2-24) * 2127 dan - 0,5 * 2-128
Positif : 0,5 * 2-128 dan (1 – 2-24) * 2127
Ouf of range:
Negative overflow : < - (1 – 2-24) * 2127
Negative underflow : < - 0,5 * 2-128
Zero
Positive underflow : > 0,5 * 2-128
Positive overflow : > (1 – 2-24) * 2127
Range & Ketelitian
 Terdapat trade off antara range dan ketelitian : jumlah bit exponent
ditambah akan meningkatkan range tapi menurunkan ketelitian
 Untuk meningkatkan keduanya, jumlah bit exponent dan significand
ditambah

T.Informatika UAD
Penambahan & Pengurangan FP
4 fase dasar algoritma penambahan dan pengurangan
bilangan floating point:
periksa apakan salah satunya bilangan nol
align significand (samakan exponent)
tambahkan atau kurangkan significand
normalisasi hasil

T.Informatika UAD
Penambahan & Pengurangan FP

T.Informatika UAD
Perkalian & Pembagian FP
Perkalian & pembagian floating point relatif lebih
sederhana dibandingkan operasi penambahan dan
pengurangan
Perlu diperhatikan :
yang tersimpan dlm format floating point adalah biased
exponent, sehingga perlu dilakukan pengurangan atau
penambahan bias
Perlu pengecekan adanya overflow dan underflow
Perkalian FP
Pembagian FP

T.Informatika UAD
ANY
QUESTION?

Anda mungkin juga menyukai