O L E H : H I DAYAT
J U R U S A N T E K N I K KO M P U T E R U N I KO M
2 0 1 2
Mari kita hitung : 0 + 0 = 0
0 + 1 = 1 1 + 0 = 1
1 + 1 = 10; 0 sbg hasil dan 1 sbg carry 1 + 1 + 1 = 11; 1 sbg hasil dan 1 sbg carry
Penjumlahan bil. biner
Contoh
Bilangan tak bertanda
Bilangan yang tidak memiliki tanda ‘+’ ataupun ‘-’
Contoh :
bilangan 8 bit : 0000000 - 11111111
: 00 - FFH
: 0 – 255
Penjumlah pada bil. tak bertanda dpt mengakibatkan overflow sehingga dibutuhkan bit carry.
Bilangan Bertanda
Fungsi: untuk merepresentasikan nilai positif (+) dan negatif (-).
Representasi bilangan bertanda:
Sign Magnitude System (bit paling “besar” sebagai tanda)
Complement 1
Complement 2
Sign Magnitude System
Bilangan yang memiliki tanda ‘+’ ataupun ‘-’
Bit MSB : tanda ‘+’ ataupun ‘-’
‘0’ : tanda positif, dan
‘1’ : tanda negatif.
Contoh :
+38 = 0 0 1 0 0 1 1 0
-38 = 1 0 1 0 0 1 1 0
+25 = 0 0 0 0 0 0 0 1 1 0 0 1
-25 = 1 0 0 0 0 0 0 1 1 0 0 1
Bilangan bertanda
Walaupun mudah dalam memberikan tanda positif dan negatif pada suatu bilangan namun sistem ini untuk diimplementasinya sangat komplek, sehingga sistem ini tidak diimplementasikan
Bilangan komplemen 1
Komplemen 1 suatu bilangan biner diperoleh dengan cara membalikkan nilai bil. tersebut.
Contoh : 101101 010010 (komplemen 1)
bilangan asli
hasil komplemen 1
Bilangan komplemen 1
Contoh :
Bilangan komplemen 2
Komplemen 2 suatu bilangan biner diperoleh dengan cara menambahkan ‘1’ pada LSB hasil komplemen 1 bilangan tersebut.
Contoh : 101101 010010 + 1 = 010011 (kompl. 2)
bilangan asli
komplemen 1
komplemen 2
Bilangan komplemen 2
Representasi bilangan bertanda pada komplemen 2
Jika nilai positif maka nilai bilangan
direpresentasikan dalam bentuk aslinya.
Jika nilai negatif maka nilai direpresentasikan dalam bentuk komplemen 2 .
Range nilai pada bilangan komplemen 2:
Penjumlahan pada Bil. Kompl. 2
Contoh :
Overflow
Overflow terjadi ketika aritmatika pada komplemen 2 hasilnya salah. (hasil aritmatika melampaui
tampungan bit nilai) Contoh:
Perkalian
a
Pembagian
a
Half Adder (1-bit)
A B S(um) C(arry)
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Half Adder
A B
Sum
Cout
Half Adder (1-bit)
A B S(um) C(arry)
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
AB C
B A
B A B
A S
A
B Sum
Carry
Full Adder
Cin A B S(um) Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Full Adder
A B
Sum
Cout Carry In
(Cin)
Full Adder
Cin A B S(um) Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
00 01 11 10
0 0 1 0 1
1 1 0 1 0
Cin AB
B A Cin
B) (A
Cin )
B A Cin(
) B A B A ( Cin AB)
B A Cin(
B A Cin CinAB
B A Cin B
A Cin S
00 01 11 10
0 0 0 1 0
1 0 1 1 1
Cin AB
AB CinA
CinB
Cout
00 01 11 10
0 0 0 1 0
1 0 1 1 1
Cin AB
B) Cin(A
AB )
B A B A Cin(
AB
Cout
ATAU
Full Adder
Full Adder
A B Cin
Co Sum
H.A. H.A.
Sum Cin A B
B) Cin(A
AB
Cout
Full Adder
Co Sum Half
Adder Sum
Co A
B Half
Adder Sum
Co A
B B A
Cin
Sum Cin A B
B) Cin(A
AB
Cout
4-bit Ripple Adder menggunakan Full Adder
FA
A B
Cout Cin
S S0 A0 B0
FA
A B
Cout Cin
S S1 A1 B1
FA
A B
Cout Cin
S S2 A2 B2
FA
A B
Cout Cin
S S3 A3 B3
Carry
A S B
C
Half Adder
A B Cin Cout
S
HA HA Full Adder
Disain Subtractor
A – B = A + (-B)
Lakukan komplemen 2 pada B
Jadikan penjumlahan A dan komplemen 2 dari B
FA
A B
Cout Cin
S S0 A0
FA
A B
Cout Cin
S S1 A1
FA
A B
Cout Cin
S S2 A2
FA
A B
Cout Cin
S S3 A3
B0 B1
B2 B3
C
Subtract