Penambahan bilangan biner, konsepnya bila bilangan binernya
sama-sama positif, maka dijumlahkan sebagaimana bilangan desimal.
Contoh:
0101
|
|
(5)
|
0101
|
+
|
(5)
|
1010
|
|
(10)
|
Namun bila salah satu bernilai negatif, maka sebaiknya
bilangan biner ini dikonversi ke format 2’s complement.
Contoh:
a.
|
1001
|
|
(-7)
|
|
d.
|
1100
|
|
(-4)
|
|
0101
|
+
|
(5)
|
|
|
1111
|
+
|
(-1)
|
|
1110
|
|
(-2)
|
|
|
11011
|
|
(-5)
|
|
|
|
|
|
|
|
|
|
b.
|
1100
|
|
(-4)
|
|
e.
|
0100
|
|
5
|
|
0100
|
+
|
(4)
|
|
|
0100
|
+
|
4
|
|
10000
|
|
(0)
|
|
|
1001
|
|
9
|
|
|
|
|
|
|
=overflow
|
||
c.
|
0011
|
|
(3)
|
|
f.
|
1001
|
|
-7
|
|
0100
|
+
|
(4)
|
|
|
1010
|
+
|
-6
|
|
0111
|
|
(7)
|
|
|
10011
|
|
-13
|
|
|
|
|
|
|
=overflow
|
Pada sembarang penambahan, hasil operasi dapat lebih besar
dari yang dapat ditampung ukuran word yang sedang digunakan. Kondisi ini
disebut overflow. Ketika terjadi overflow, ALU harus memberikan sinyal tentang
keadaan ini sehingga komputer tidak memanfaatkan data ini.
Untuk
mendeteksi overflow, aturannya adalah sbb:
Jika 2 bilangan ditambahkan dan keduanya positif atau
keduanya negatif, maka overflow terjadi jika dan hanya jika hasilnya mempunyai tanda
yang berlawanan.
Pengurangan
Untuk mengurangkan satu bilangan (subtrahend) dari bilangan
lain (minvend), ambil komplemen dua dari subtrahend dan tambahkan hasilnya ke
minvend.
Contoh:
a.
|
2-7 ð
|
0010
|
|
(2)
|
|
c.
|
(-5)-2 ð
|
1011
|
|
-5
|
|
|
1001
|
+
|
(-7)
|
|
|
|
1110
|
+
|
-2
|
|
|
1011
|
|
(-5)
|
|
|
|
11001
|
|
-7
|
|
|
|
|
|
|
|
|
|
|
|
b.
|
5-2 ð
|
0101
|
|
(5)
|
|
d.
|
(-6)-4 ð
|
1010
|
|
-6
|
|
|
1110
|
+
|
(-2)
|
|
|
|
1100
|
+
|
-4
|
|
|
10011
|
|
3
|
|
|
|
10110
|
|
-10
|
|
|
|
|
|
|
|
|
=overflow
|
Perkalian
Perkalian adalah operasi yang lebih kompleks dibanding
pernambahan dan pengurangan. Untuk bilangan unsign, perkalian dapat dilakukan
identik dengan bilangan desimal.
Contoh:
11x13:
|
|||||||
|
|
|
1
|
0
|
1
|
1
|
|
|
|
|
1
|
1
|
0
|
1
|
x
|
|
|
|
1
|
0
|
1
|
1
|
|
|
|
0
|
0
|
0
|
0
|
|
|
|
1
|
0
|
1
|
1
|
|
|
|
1
|
0
|
1
|
1
|
|
|
|
|
1
|
0
|
0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Konsep perkalian
secara umum untuk unsign integer
Pengali-pengali multiplicand terisi ke dalam dua register
(Q&M). Register ketiga, register A, juga diperlukan dan pada awalnya di-set
0. Terdapat juga register C10bit yang di-inisialisasi 0 yang menampung bit
pembawa potensian sebagai hasil penambahan. Operasi perkaliannya sebagai
berikut.
Logika control membaca bit-bit pengali satu demi satu jika Q0
adalah 1, maka multiplicand ditambahkan ke register A dan hasilnya disimpan di
dalam register A, dengan bit C untuk overflow kemudian semua bit yang berada
dalam register C, A, dan Q digeser ke kanan 1 bit, sehingga C ð An-1, A0
ð Qn-1, Q0
ð hilang.
Jika Q0=0, maka tidak terjadi penambahan, hanya
terjadi pergeseran. Proses ini dulangi untuk setiap bit pengali. Produk/hasil
kali disimpan di register A, C, dan Q.
C
|
A
|
Q
|
M
|
|
0
|
0000
|
1101
|
1011
|
Nilai Awal
|
0
0
|
1011
0101
|
1101
1110
|
1011
1011
|
Pergeseran tambahan
(siklus pertama)
|
0
|
0010
|
1111
|
1011
|
Pergeseran
(siklus kedua)
|
0
0
|
1101
0110
|
1111
1111
|
1011
1011
|
Pergeseran tambahan
(siklus ketiga)
|
1
0
|
0001
1000
|
1111
1111
|
1011
1011
|
Pergeseran tambahan
(siklus keempat)
|
0 komentar:
Posting Komentar