Upload
staffpengajar
View
175
Download
0
Embed Size (px)
Citation preview
Operator Komplemen
Ir. Sihar, MT.T. Informatika – FTI
Bandung – 2016
TIF305 Organisasi dan Arsitektur Komputer (3 sks)
Daftar Pustaka
1. Gilmore, C.M. (1995). Microprocessors: Principles and Applications. McGraw-Hill. ISBN:978-002-801-837-9
2. Mano, M. (1992). Computer System Architecture (3rd Edition). Prentice Hall. ISBN: 978-013-175-563-5
3. Patterson, D.A., Hennessy, J.L. (2013). Computer Organization and Design, Fifth Edition: The Hardware/Software Interface. Morgan Kaufmann. ISBN: 978-012-407-726-3
4. Simamora, S.N.M.P. (2002). “Diktat Kuliah SK-303 Arsitektur Komputer (3 sks)”. Dept. Sistem Komputer, Fak. Teknik. Institut Teknologi Harapan Bangsa. Bandung.
5. Simamora, S.N.M.P. (2016). Modul Belajar Praktis Algoritma dan Pemrograman, Penerbit Deepublish. Yogyakarta. ISBN:978-602-401-318-9.
SImbol yang digunakan untuk Operator
KomplemenPada notasi statement/algoritma: ~
Pada notasi tabel kebenaran (truth-table): Â
Pada sirkuit/rangkaian:
Dalam hardware dan pemrograman, Operator Komplemen berperan untuk
merepresentasikan data numerik dalam bentuk negatip
Transformasi BIT untuk bilangan negatip
Contoh: Tuliskan algoritma Matematika Informasi untuk mendapatkan BIN pada bilangan negatip dalam DEC sebagai berikut: DEC(-22) = ( ... )2
Solusi: Algoritma Matematika Informasi untuk transformasi BIN pada Bil. Negatip
(i). Positipkan nilai DEC tsb: (-22)10 (22) 10; dan tampungkan ke var: x(ii). Ubah x dalam BIN dengan panjang-bit=16; (22)10 = ( ... ) 2;
xxxx xxxx xxxx xxxx
(iii). Hasil x tersebut di-NOT-kan:(22)10 = (0000 0000 0001 0110) 2;(22)10 =
(iv). Selanjutnya hasil komplemen tsb ditambahkan dengan (1)2 :
(v). Maka didapatkan: (-22)10 = (1111 1111 1110 1010)2;
0000 0000 0001 01101111 1111 1110 1001
1111 1111 1110 10010000 0000 0000 0001
1111 1111 1110 1010
Kasus: Buktikan: bahwa (-26) 10 = (1111 1111 1110 0110)2;
Solusi: Misalkan, DEC(60) + DEC(-26) = DEC( ... )
DEC(60) DEC(-26)
: 0000 0000 0011 1100: 1111 1111 1110 0110
: 10000 0000 0000 0010DEC(4)
sign: + (tanda-positip)
Maka, terbukti bahwa: (-26) 10 = (1111 1111 1110 0110)2;
Kasus: Buktikan: bahwa (-22) 10 = (1111 1111 1110 1010)2;
Solusi: Misalkan, DEC(25) + DEC(-26) = DEC( ... )
DEC(25) DEC(-22)
: 0000 0000 0001 1001: 1111 1111 1110 1010
: 10000 0000 0000 0011DEC(3)
sign: + (tanda-positip)
Maka, terbukti bahwa: (-22) 10 = (1111 1111 1110 1010)2;
Kasus: Buktikan: bahwa (-43) 10 = (1111 1111 1101 0101)2;
Solusi: Misalkan, DEC(61) + DEC(-27) = DEC( ... )
DEC(61) DEC(-43)
: 0000 0000 0011 1101: 1111 1111 1101 0101
: 10000 0000 0001 0010DEC(18)
sign: + (tanda-positip)
Maka, terbukti bahwa: (-43) 10 = (1111 1111 1101 0101)2;
Kasus: Buktikan: bahwa (-107) 10 = (1111 1111 1001 0101)2;
Solusi: Misalkan, DEC(128) + DEC(-107) = DEC( ... )
DEC(128) DEC(-107)
: 0000 0000 1000 0000: 1111 1111 1001 0101
: 10000 0000 0001 0101DEC(21)
sign: + (tanda-positip)
Maka, terbukti bahwa: (-107) 10 = (1111 1111 1001 0101)2;
Algoritma Matematika Informasi untuk mendapatkan nilai DEC dari
negatip-BIN
Misalkan: tuliskan algoritma Matematika Informasi untuk menyelesaikan persoalan berikut: (1111 1111 1101 0101)2 = ( ... )10;Solusi: x (1111 1111 1101 0101)2 ;
(i). Komplemen-kan BIN tsb: 1111 1111 1101 01010000 0000 0010 1010
(ii). Hasil komplemen tsb ditambahkan dengan (1)2 : 0000 0000 0010 10100000 0000 0000 0001
0000 0000 0010 1011
(iii). Nyatakan x tersebut dalam DEC: 0000 0000 0010 1011
DEC(43) (-1)10 (-43)10;
32 8 2 1 DEC(43)(iv). Kali-kan DEC dengan (-1)10 :
(v). Maka didapatkan: (1111 1111 1101 0101)2 = (-43)10;
Kasus: Tuliskan algoritma Matematika Informasi untuk menyelesaikan persoalan berikut: (1111 1111 1001 0101)2 = ( ... )10;
Solusi: x (1111 1111 1001 0101)2 ;(i). Komplemen-kan BIN tsb: 1111 1111 1001 0101
0000 0000 0110 1010
(ii). Hasil komplemen tsb ditambahkan dengan (1)2 : 0000 0000 0110 10100000 0000 0000 0001
0000 0000 0110 1011
(iii). Nyatakan x tersebut dalam DEC: 0000 0000 0110 1011
DEC(107) (-1)10 (-107)10;
32 8 2 1 DEC(107)(iv). Kali-kan DEC dengan (-1)10 :
(v). Maka didapatkan: (1111 1111 1001 0101)2 = (-107)10;
64
xxxx xxxx xxxx xxxx
(22)10 = (0000 0000 0001 0110) 2
(22)10 =
Penjumlahan BIT (binary-digit)
Aturan: (1)2 + (0)2 = (1)2
(0)2 + (1)2 = (1)2
(1)2 + (1)2 = (10)2
(1)2 + (1)2 + (1)2 = (11)2
(0)2 = (0)10 ;dan (1)2 = (1)10
Contoh: DEC(13) : 0000 0000 0000 1101DEC(28) : 0000 0000 0001 1100
0000 0000 0010 1001DEC(41)
32 8 1 DEC(41)terbukti
Contoh: Bila var: x1 diisikan DEC(22), lalu ditambahkan dengan 0x5C, selanjutnya ditambahkan ke 0102. Dan hasil-akhir ditampungkan kembali ke x1. Tuliskan nilai termutahir x1 menggunakan algoritma Matematika Informasi penjumlahan BIT dengan panjang 16-bit..
Solusi:
(5c)16 = (0000 0000 0101 1100) 2
(102)8 = (0000 0000 0100 0010) 2 (0000 0000 1011 0100)2
128 32 16 4
DEC(180)
Pem
bukti
an d
enga
n C+
+:
Algoritma Komplemen
Contoh: Tuliskan algoritma Matematika Informasi untuk menyelesaikan persoalan berikut: ~(22)10 = ( ... )10
Solusi: Algoritma Matematika Informasi untuk komplemen dari sebuah bilangan:(i). Misalkan nilai DEC tsb ditampungkan ke var: x
(ii). Ubah x dalam BIN dengan panjang-bit=16; (22)10 = ( ... ) 2; xxxx xxxx xxxx xxxx
(22)10 = (0000 0000 0001 0110) 2;(22)10 =
(iii). Tambah-kan x dengan (1)2: 0000 0000 0001 01100000 0000 0000 0001
0000 0000 0001 0111
(iv). Hasil x tersebut di-NOT-kan: 0000 0000 0001 01111111 1111 1110 1000
(v). Selanjutnya hasil komplemen tsb ditambahkan dengan (1)2 :1111 1111 1110 10000000 0000 0000 0001
1111 1111 1110 1001
(vi). Nyatakan BIN tsb dalam DEC: (1111 1111 1110 1001)2 = ( ... )10
lanjutan (vi). Nyatakan BIN tsb dalam DEC: (1111 1111 1110 1001)2 = ( ... )10
(a). Komplemen-kan x tsb: 1111 1111 1110 10010000 0000 0001 0110
(b). Tambah-kan x dengan (1)2: 0000 0000 0001 01100000 0000 0000 0001
0000 0000 0001 0111
(c). Nyatakan x tersebut dalam DEC: 0000 0000 0001 0111
16 4 2 1 DEC(23)DEC(23) (-1)10 (-23)10;
(d). Kali-kan DEC dengan (-1)10 :
(v). Maka didapatkan: (1111 1111 1110 1001)2 = (-23)10; (vii). Alhasil, didapatkan: ~(22)10 = (-23)10;
Algoritma dan pemrograman C++ Tampilan jalannya program
Terapan Operasi: pergeseran bit, dan komplemen pada pemrograman C/C++
dan JavaScript adalah identik
#include<iostream.h>void main(){ int z=0x23; z=(z>>1); cout << z;}
Pergeseran bit untuk z=0x23;
<script language=JavaScript> z=0x23; z=(z>>1); document.write(z);</script>
#include<iostream.h>void main(){ int z=23; z=(~z); cout << z;}
Komplemen terhadap z, dimana z=23;
<script language=JavaScript> z=23; z=(~z); document.write(z);</script>