Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung 2013 IF5011 Sistem dan Arsitektur Komputer B Bagian 3 Integer 1.

Presentasi serupa


Presentasi berjudul: "Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung 2013 IF5011 Sistem dan Arsitektur Komputer B Bagian 3 Integer 1."— Transcript presentasi:

1 Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung 2013 IF5011 Sistem dan Arsitektur Komputer B Bagian 3 Integer 1

2 Pembahasan Representasi dan pengkodean integer  Unsigned  Signed / two’s complement Operasi integer  Penjumlahan  Perkalian Pemrograman integer  Aturan pada C  Overflow  Operasi shift pada perkalian atau pembagian dengan 2. 2

3 Representasi Integer Integer direpresentasikan dengan dua cara :  Bilangan tidak negatif (unsigned)  Bilangan negatif, nol dan positif (two’s complement/signed) Tipe data integer pada bahasa C : Deklarasi CUkuranNilai MinimumNilai Maksimum char unsigned char 8 bit (1 byte) short [int] unsigned short [int] 16 bit (2 byte) int unsigned [int] 32 bit (4 byte)

4 Pengkodean Integer Unsigned : Signed / Two’s complement : bit tanda Pada two’s complement, bit MSB digunakan sebagai bit tanda  0 untuk bilangan tidak negatif  1 untuk bilangan negatif B2U(X) : binary to unsigned, dgn panjang w bit memetakan urutan ‘0’ dan ‘1’ sepanjang w bit menjadi bilangan tidak negatif B2T(X) : binary to two’s comp, dgn panjang w bit 4

5 Contoh Pengkodean Integer Nilai numerik untuk setiap kemungkinan digit (asumsi w = 4) BinerB2U 4 (X)B2T 4 (X) = = = = = = = = = -1 5

6 Contoh Pengkodean Integer short int x = short int y =  short pada C memiliki ukuran 2 byte 6

7 Nilai Minimum dan Maksimum Nilai unsigned  UMin=0 000…0  UMax = 2 w – 1 111…1 Nilai two’s complement  TMin= –2 w–1 100…0  TMax = 2 w–1 – 1 011…1 Nilai untuk w = 16 DesimalHeksaBiner Umin Umax x0000 0XFFFF Tmin Tmax x8000 0x7FFF xFFFF

8 Ukuran Word Berbeda Perhatikan :  |TMin | = TMax + 1  Range pada two’s complement berbentuk asimetrik  Dapat menjadi sumber bug  UMax=2 * TMax + 1 8

9 Nilai Numerik Signed dan Unsigned Ekivalensi  Kode sama untuk nilai non negatif Unik  Setiap pola bit merepresentasikan nilai integer yang unik  Setiap representasi integer memiliki kode bit yang unik  Dapat dipetakan terbalik  U2B(x) = B2U -1 (x)  Pola bit untuk unsigned integer  T2B(x) = B2T -1 (x)  Pola bit untuk two’s comp integer XB2T(X)B2U(X) –88 –79 –610 –511 –412 –313 –214 –

10 Relasi Antara Signed dan Unsigned T2U T2BB2U Two’s CompUnsigned Pola bit tetap sama xux X Two’sBinUnsg

11 Casting Signed ke Unsigned short int x = 12345; unsigned short int ux = (unsigned short) x; short int y = ; unsigned short int uy = (unsigned short) y; Bahasa C dapat melakukan casting dari Signed ke Unsigned Nilai diperoleh  Tidak ada perubahan representasi bit  Nilai non negatif tidak berubah  ux =  Nilai negatif berubah menjadi nilai positif yang besar  uy =

12 uy = y + 2 * = y Casting Signed ke Unsigned 12

13 Signed dan Unsigned dalam C Konstanta  Secara default dianggap sebagai signed integer  Unsigned jika terdapat “U” sebagai suffix 0U, U Casting  Casting secara eksplisit antara signed dan unsigned sama dengan U2T dan T2U int tx, ty; unsigned ux, uy; tx = (int) ux; uy = (unsigned) ty;  Casting implicit juga terjadi pada assignment dan pemanggilan prosedur tx = ux; uy = ty; 13

14 Casting Surprise 00U == unsigned -10< signed -10U> unsigned > signed U < unsigned -1-2 > signed (unsigned) -1-2 > unsigned U < unsigned (int) U> signed Penjelasan ekspresi  Jika unsigned dan signed dicampurkan dalam satu ekspresi, maka secara implisit nilai signed di-cast menjadi unsigned  Termasuk operasi perbandingan, ==, =  Contoh untuk W = 32 Konstanta 1 Konstanta 2 RelasiEvaluasi 00U U U (unsigned) U (int) U 14

15 Penjelasan Casting Surprise 0 TMax TMin –1 –2 0 UMax UMax – 1 TMax TMax + 1 2’s Comp. Range Unsigned Range 2’s Comp.  Unsigned  Urutan terbalik  Negatif  Positif dengan nilai besar 15

16 Ekstensi Tanda Tugas :  Diberikan bilangan signed integer x dengan w-bit  Konversi menjadi integer w+k-bit dengan nilai sama Aturan :  Bit tanda dicopy sebanyak k :  X = x w–1,…, x w–1, x w–1, x w–2,…, x 0 MSB dicopy sebanyak k X X w w k 16

17 Contoh Ekstensi Tanda  Konversi data integer dari kecil ke besar  Compiler C secara otomatis melakukan ekstensi tanda short int x = 12345; int ix = (int) x; short int y = ; int iy = (int) y; 17

18 Pembuktian Ekstensi Tanda Membuktikan kebenaran, dengan induksi pada k  Tahap induksi : Menambah satu bit tidak mengubah nilai  Kunci penyelesaian : –2 w–1 = –2 w +2 w–1  Perhatikan bobot pada bit yang lebih atas : X –2 w–1 x w–1 X –2 w x w–1 + 2 w–1 x w–1 =–2 w–1 x w–1 - X X -+ w+1 w 18

19 Bilangan Negatif Membuat bilangan negatif dengan operasi komplemen dan increment Dapat dilakukan sesuai aturan pada 2’s Complement ~x + 1 == -x Komplemen  Observasi: ~x + x == 1111…11 2 == -1 Increment  ~x + x + (-x + 1)==-1 + (-x + 1)  ~x + 1==-x x ~x

20 Contoh Komplemen + Increment x =

21 Penjumlahan Unsigned Fungsi penjumlahan standar  carry output diabaikan Implementasi Modular Arithmetic s= UAdd w (u, v)=u + v mod 2 w u v + u + v Hasil penjumlahan : w+1 bit Operand: w bit Abaikan carry : w bit UAdd w (u, v) 21

22 Penjumlahan Integer Penjumlahan integer  Integer 4-bit u, v  Hitung hasil penjumlahan Add 4 (u, v)  Nilai bertambah secara linier dengan u dan v  Membentuk permukaan planar Add 4 (u, v) u v 22

23 Penjumlahan Unsigned Berputar  Jika hasil penjumlahan ≥ 2 w  Sebanyak-banyaknya satu kali 0 2w2w 2 w+1 UAdd 4 (u, v) u v Hasil sesungguhnya Hasil modular Overflow 23

24 Sifat Matematika Penjumlahan modular membentuk suatu kelompok Abelian  Tertutup pada penjumlahan 0  UAdd w (u, v)  2 w –1  Komutatif UAdd w (u, v) = UAdd w (v, u)  Asosiatif UAdd w (t, UAdd w (u, v)) = UAdd w (UAdd w (t, u ), v)  0 adalah identitas penjumlahan UAdd w (u, 0) = u  Setiap elemen memiliki inversi penjumlahan  Bila UComp w (u ) = 2 w – u UAdd w (u, UComp w (u )) = 0 24

25 Penjumlahan Two’s Complement Tadd dan UAdd memiliki perilaku bit yang sama  Penjumlahan signed dan unsigned pada C: int s, t, u, v; s = (int) ((unsigned) u + (unsigned) v); t = u + v  Diperoleh s == t u v + u + v Hasil penjumlahan : w+1 bit Operan : w bit Abaikan carry : w bit TAdd w (u, v) 25

26 Karakterisasi TAdd Hasil penjumlahan sesungguhnya memerlukan w+1 bit MSB dibuang Perlakukan bit sisanya sebagai integer 2’s comp –2 w –1 –2 w 0 2 w –1 Hasil Sesungguhnya Hasil TAdd 1 000… … … … …1 100…0 000…0 011…1 PosOver NegOver (NegOver) (PosOver) u v < 0> 0 < 0 > 0 NegOver PosOver TAdd(u, v) 26

27 Penjumlahan 2’s Complement Nilai  4-bit two’s comp.  Berkisar antara -8 dan +7 Berputar  Jika jumlah  2 w–1  Menjadi negatif  Sebanyak-banyak nya satu kali  Jika jumlah < –2 w–1  Menjadi positif  Sebanyak-banyak nya satu kali TAdd 4 (u, v) u v PosOver NegOver 27

28 Mendeteksi Overflow Tugas  Diketahui s = TAdd w (u, v)  Tentukan jika s = Add w (u, v)  Contoh int s, u, v; s = u + v; Aturan  Overflow jika : u, v < 0, s  0(Overflow Negatif) u, v  0, s < 0(Overflow Positif) ovf = (u<0 == v<0) && (u<0 != s<0); 0 2 w –1 PosOver NegOver 28

29 Sifat Matematika TAdd Aljabar isomorphic  TAdd w (u, v) = U2T(UAdd w (T2U(u ), T2U(v)))  Keduanya memiliki pila bit sama Tadd Two’s Complement membentuk group  Tertutup, Komutatif, Asosiatif, 0 sebagai identitas penjumlahan  Setiap elemen memiliki inversi penjumlahan Bila TComp w (u ) = U2T(UComp w (T2U(u )) TAdd w (u, TComp w (u )) = 0 29

30 Operasi Perkalian Menghitung hasil kali sesungguhnya bilangan of w-bit x, y  signed atau unsigned Jangkauan nilai  Unsigned: 0 ≤ x * y ≤ (2 w – 1) 2 = 2 2w – 2 w  hingga 2w bits  Two’s complement min: x * y ≥ (–2 w–1 )*(2 w–1 –1) = –2 2w–2 + 2 w–1  hingga 2w–1 bits  Two’s complement maks: x * y ≤ (–2 w–1 ) 2 = 2 2w–2  hingga 2w bits,tetapi hanya bagi (TMin w ) 2 Menjaga hasil eksak  Harus memperluas ukuran word sesuai dengan hasil perkalian  Dilakukan dalam software oleh “arbitrary precision” arithmetic packages 30

31 Perkalian Unsigned Dalam C Fungsi perkalian standar  Sebanyak w bit orde tinggi diabaikan Implementasi Modular Arithmetic UMult w (u, v)=u · v mod 2 w u v * u · v Hasil kali : 2*w bit Operan : w bit Abaikan w bit : w bit UMult w (u, v) 31

32 Perkalian Signed dan Unsigned Perkalian unsigned unsigned ux = (unsigned) x; unsigned uy = (unsigned) y; unsigned up = ux * uy  Memotong hasil kali menjadi bilangan w-bit up = UMult w (ux, uy)  Aritmatika modular : up = ux  uy mod 2 w Perkalian two’s complement int x, y; int p = x * y;  Menghitung hasil kali eksak dari dua bilangan w-bit x, y  Memotong hasil kali menjadi bilangan w-bit p = TMult w (x, y) 32

33 Perkalian Signed dan Unsigned Perkalian unsigned unsigned ux = (unsigned) x; unsigned uy = (unsigned) y; unsigned up = ux * uy Perkalian two’s complement int x, y; int p = x * y; Relasi  Perkalian signed memberikan hasil bit sama dengan unsigned  up == (unsigned) p 33

34 Perkalian Kelipatan 2 k dgn Shift Operasi  u << k menghasilkan u * 2 k  keduanya signed dan unsigned Contoh :  u << 3==u * 8  u << 5 - u << 3==u * 24  Pada banyak mesin, ‘shift and add’ lebih cepat dari perkalian  Compiler menghasilkan kode ini secara otomatis u 2k2k * u · 2 k Hasil kali : w+k bit Operan : w bit Abaikan k bit : w bit UMult w (u, 2 k ) k 000 TMult w (u, 2 k )

35 Pembagian Kelipatan 2 k dgn Shift Pembagian unsigned  u >> k menghasilkan  u / 2 k   Menggunakan logical shift u 2k2k / u / 2 k Pembagian : Operan : k 0  u / 2 k  Hasil :. Binary Point 0 35

36 Pembagian Kelipatan 2 k dgn Shift Pembagian signed  x >> k menghasilkan  x / 2 k   Mengunakan arithmetic shift  Rounding ke arah yang salah jika u < x 2k2k / x / 2 k Pembagian : Operan : k 0 RoundDown(x / 2 k ) Hasil :. Binary Point 0 36

37 Koreksi Pembagian dgn 2 k Pembagian bilangan negatif dengan 2 k  Ingin diperoleh  x / 2 k  (Rounding menuju 0)  Dihitung  (x+ 2 k -1)/ 2 k   Pada C: (x + (1 > k  Bias pembilang mendekati 0 Kasus 1: Tidak ada rounding Penyebut : Pembilang : u 2k2k /  u / 2 k  k Binary Point k +– Tidak ada pengaruh dari bias 37

38 Koreksi Pembagian dgn 2 k Penyebut : Pembilang : Kasus 2 : Rounding x 2k2k /  x / 2 k  k Binary Point k +–1 1 Bias menambah 1 pada hasil akhir ditambah 1 38

39 Sifat-Sifat Aritmatika Unsigned Perkalian unsigned dengan penjumlahan membentuk ring komutatif  Penjumlahan adalah kelompok komutatif  Tertutup pada perkalian 0  UMult w (u, v)  2 w –1  Komutatif perkalian UMult w (u, v) = UMult w (v, u)  Asosiatif perkalian UMult w (t, UMult w (u, v)) = UMult w (UMult w (t, u ), v)  1 adalah identitas perkalian UMult w (u, 1) = u  Distributif UMult w (t, UAdd w (u, v)) = UAdd w (UMult w (t, u ), UMult w (t, v)) 39

40 Sifat-Sifat Aritmatika 2’s Comp Aljabar isomorphic  Perkalian dan penjumlahan unsigned  Pemotongan hingga w bit  Perkalian dan penjumlahan two’s complement  Pemotongan hingga w bits Keduanya membentuk Ring  Isomorphic pada integer ring mod 2 w Perbandingan dengan aritmatika integer  Keduanya adalah ring  Integers mengijinkan urutan sifat seperti : u > 0  u + v > v u > 0, v > 0  u · v > 0  Sifat-sifat tersebut tidak berlaku pada aritmatika two’s complement TMax + 1== TMin * 30426== (16-bit words) 40


Download ppt "Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung 2013 IF5011 Sistem dan Arsitektur Komputer B Bagian 3 Integer 1."

Presentasi serupa


Iklan oleh Google