TMD01 Bab04B Representasi Bit
-
Upload
syahrizanastri -
Category
Documents
-
view
53 -
download
1
Transcript of TMD01 Bab04B Representasi Bit
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 1/35
Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung2009
Arsitektur Komputer
Representasi Bit dan Byte
1
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 2/35
Pembahasan
Representasi informasi dalam bentuk bit
Biner/Heksadesimal Representasi byte
Bilangan
Karakter dan string Instruksi
Manipulasi level bit
Aljabar Boolean
Ekspresi dalam bahasa C
2
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 3/35
Representasi Berbasis 10
Representasi bilangan berbasis 10 Berasal dari jari manusia, dikenal sebagai ‘digit’ Representasi yang biasa digunakan dalam transaksi finansial Digunakan juga dalam notasi ilmiah
1.2345 x 104
Sulit diimplementasikan secara elektronik
Sulit untuk disimpan ENIAC (komputer elektronik pertama) menggunakan 10 tabung
hampa untuk mengimplementasikan satu digit
Sulit untuk dikirimkan Perlu kepresisian tinggi untuk mengkodekan 10 level sinyal pada
satu kawat Sulit untuk mengimplementasikan fungsi logika digital
Penjumlahan, perkalian, dll
3
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 4/35
Representasi Biner
Representsi bilangan berbasis 2 1234510 direpresentasikan 110000001110012
1.2010 direpresentasikan 1.0011001100110011[0011]…2
1.2345 X 104 direpresentasikan 1. 10000001110012 X 213
Implementasi elektronik Elemen ‘bistable’ dapat disimpan dengan mudah Andal bila dikirimkan melalui kawat yang tidak akurat dan ber-derau
Fungsi aritmatika dapat diimplemetasikan secara langsung
0.0V
0.5V
2.8V
3.3V
0 1 0
4
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 5/35
Mengkodekan Byte
1 byte = 8 bit
Merepresentasikan bilangan : Biner dari 000000002 hingga 111111112
Desimal dari 010 hingga 25510
Heksadesimal dari 0016 hingga FF16
Representasi bilangan berbasis 16 Menggunakan karakter ‘0’ hingga ‘9’ dan ‘A’ hingga ‘F’
Pada bahasa pemrograman C, FA1D3716ditulis 0xFA1D37 atau 0xfa1d37
0 0 00001 1 00012 2 00103 3 00114 4 01005 5 0101
6 6 01107 7 01118 8 10009 9 1001
A 10 1010B 11 1011
C 12 1100D 13 1101E 14 1110F 15 1111
5
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 6/35
Ukuran Word
Setiap komputer memiliki “ukuran word” tertentu
Indikator ukuran data integer dan data pointer (alamat)Kebanyakan komputer saat ini, 1 word = 32 bit (4 byte)
Membatasi alokasi alamat hingga 4GB (232 byte)
Dari alamat 0000.…0000 (0) hingga 1111.…1111 (4,294,967,295)
Nilai ini menjadi terlalu kecil bila digunakan pada aplikasi scientificdan database yang perlu menggunakan memori secara intensif
Sistem high-end menggunakan 64 bit (8 byte)
Dapat mengalamati 1.8 X 1019 byte
Komputer dan compiler mendukung berbagai format data
integer dan floating point memiliki kode dan panjang databerbeda
6
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 7/35
Organisasi Memori
Alamat merupakan lokasipenyimpanan word datadalam memori
Ukuran satu lokasi memori =satu byte
Alamat menunjukkan lokasibyte pertama suatu word
Alamat word berikutnyabertambah 4 (32 bit) atau 8(64 bit)
Perlu 4 lokasi memori untuk menyimpan data 32 bit
0000
0001
00020003
0004
0005
00060007
0008
0009
0010
0011
32-bit Byte Alamat
0012
0013
0014
0015
64-bit
Addr
=??
Addr=??
Addr=
??
Addr=
??
Addr=??
Addr=??
0000
0004
0008
0012
0000
0008
7
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 8/35
Representasi Data
Ukuran data pada format C (dalam byte)
Tipe data Tipikal 32-bit Alpha 64-bit Keterangan
char 1 1
short int 2 2
int 4 4 long int 4 8
float 4 4 single precision
double 8 8 double precision
long double 8 8
char * 4 8 pointer
8
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 9/35
Aturan Pengurutan Byte
Bagaimana setiap byte suatu word disusun
dalam memori ? Aturan :
Mesin Sun dan Mac adalah mesin “Big Endian”
Byte LSB (Least Significant Byte) terletak di alamat palingTINGGI
Mesin Compaq Alpha dan PC adalah “Little Endian”
Byte LSB (Least Significant Byte) terletak di alamat paling
RENDAH
9
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 10/35
Contoh Urutan Byte
Big Endian : byte LSB terletak di alamat paling tinggi
Little Endian : byte LSB terletak di alamat paling rendah
Contoh Variabel x memiliki representasi 4 byte : 0x01234567
dimana MSB = 0x01(0000 0001) dan LSB = 0x67(0110 0111)
Alamat awal yang diberikan oleh &x adalah 0x100
0x100 0x101 0x102 0x103
01 23 45 67
0x100 0x101 0x102 0x103
67 45 23 01
Big Endian
Little Endian
01 23 45 67
67 45 23 01
10
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 11/35
Membaca Urutan Byte
Disassembly
Mengartikan kode mesin
Dihasilkan oleh suatu program yang dapat membaca kode mesinContoh potongan program :
Alamat Kode instruksi Bahasa Assembly8048365: 5b pop %ebx
8048366: 81 c3 ab 12 00 00 add $0x12ab,%ebx
804836c: 83 bb 28 00 00 00 00 cmpl $0x0,0x28(%ebx)
Mengartikan bilangan
nilai : 0x12ab menjadi 4 bytes : 0x000012ab
dipisah per byte : 00 00 12 ab
dibalik : ab 12 00 00
11
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 12/35
Representasi Byte Data
Kode untuk menampilkan representasi byte data
Casting pointer menjadi unsigned char * menghasilkan array byte
typedef unsigned char *pointer;
void show_bytes(pointer start, int len)
{
int i;
for (i = 0; i < len; i++)
printf("0x%p\t0x%.2x\n",
start+i, start[i]);
printf("\n");
}
printf directives:%p : print pointer%x : print hexadecimalcasting = mengganti tipe data
menggunakan instruksi typedef12
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 13/35
Hasil Eksekusi show_bytes
int a = 12345;
printf("int a = 12345;\n");
show_bytes((pointer) &a, sizeof(int));
Hasil diperoleh (Linux) :
int a = 12345;
0x11ffffcb8 0x39
0x11ffffcb9 0x30
0x11ffffcba 0x00
0x11ffffcbb 0x00
Program utama :
13
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 14/35
Representasi Integer
int A = 12345;
int B = -12345;
long int C = 12345;
Desimal: 12345
Biner: 0011 0000 0011 1001
Heksa: 3 0 3 9
39
30
0000
Linux/Alpha A
3039
00
00
Sun A
C7
CF
FF
FF
Linux/Alpha B
CF
C7
FF
FF
Sun B
Representasi two’s complement
00
00
0000
39
30
00
00
Alpha C
30
39
00
00
Sun C
39
30
00
00
Linux C
14
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 15/35
Representasi Pointer (Alamat)
int B = -12345;
int *P = &B;
Alamat Alpha
Heksa: 1 F F F F F C A 0
Biner: 0001 1111 1111 1111 1111 1111 1100 1010 0000
01
00
00
00
A0FC
FF
FF
Alpha P
Alamat SunHeksa: E F F F F B 2 C
Biner: 1110 1111 1111 1111 1111 1011 0010 1100
Mesin dan compiler berbeda akan memberikan lokasi obyek berbeda
FB
2C
EF
FF
Sun P
FF
BF
D4
F8
Alamat Linux
Heksa: B F F F F 8 D 4
Biner: 1011 1111 1111 1111 1111 1000 1101 0100
15
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 16/35
Representasi Floating Point
Float F = 12345.0;
IEEE Single Precision Floating Point Representation
Heksa: 4 6 4 0 E 4 0 0
Biner: 0100 0110 0100 0000 1110 0100 0000 0000
12345: 1100 0000 1110 01
Tidak sama dengan representasi integer, tetapi konsisten di semua mesin
00
E440
46
Linux/Alpha F
E4
00
46
40
Sun F
Memperlihatkan relasi dengan integer, walau tidak terlihat jelas
IEEE Single Precision Floating Point Representation
Heksa: 4 6 4 0 E 4 0 0
Biner: 0100 0110 0100 0000 1110 0100 0000 0000
12345: 1100 0000 1110 01
IEEE Single Precision Floating Point
Heksa: 4 6 4 0 E 4 0 0
Biner: 0100 0110 0100 0000 1110 0100 0000 0000
12345: 1100 0000 1110 01
16
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 17/35
Representasi String
char S[6] = "12345";Strings dalam bahasa C
Direpresentasikan dalam array karakter
Setiap karakter dikodekan dalam format ASCII
Kode karakter standar 7-bit
Karakter “0” memiliki kode 0x30
Digit i memiliki kode 0x30+i
String harus diakhiri dengan null
Karakter akhir = 0
Kompatibilitas
Setiap sistem yang menggunakan ASCII untuk menkodekan karakter akan memberikan hasil
yang sama Data teks umumnya bersifat platform-
independen
Kecuali jika ada aturan lain tentangkarakter akhir suatu baris
Linux/Alpha S Sun S
33
34
31
32
35
00
33
34
31
32
35
00
17
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 18/35
Representasi Kode Mesin
Program dikodekan menjadi urutan instruksi Masing-masing berupa operasi sederhana
Operasi aritmatika
Membaca atau menulis memori
Percabangan
Instruksi dikodekan sebagai byte
Instruksi pada Alpha, Sun, Mac menggunakan 4 byte Reduced Instruction Set Computer (RISC)
PC menggunakan instruksi dengan panjang yang variabel Complex Instruction Set Computer (CISC)
Setiap mesin memiliki jenis instruksi dan pengkodean berbeda Umumnya kode tidak binary compatible
Program juga merupakan urutan byte
18
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 19/35
Representasi Instruksi
int sum(int x, int y)
{
return x+y;
}
Mesin yang berbeda menggunakan instruksi dan kode berbeda
00
0030
42
Alpha sum
01
80FA
6B
E0
08
81
C3
Sun sum
90
0200
09
Pada contoh ini, Alpha & Sunmenggunakan dua instruksidengan panjang 4 byte
Pada kasus lain memakai jumlahinstruksi berbeda
PC menggunakan 7 instruksidengan panjang 1, 2, dan 3 byte
Sama dengan NT dan Linux NT / Linux tidak ‘fully binary
compatible’
E5
8B
55
89
PC sum
45
0C03
45
08
89
EC
5D
C3
19
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 20/35
Aljabar Boolean
20
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 21/35
Aljabar Boolean
Dikembangkan oleh George Boole pada abad 19
Representasi logika aljabar : 1 = “TRUE” dan 0 = “FALSE”
AND A&B = 1 jika A=1 dan B=1
& 0 1
0 0 01 0 1
~
0 1
1 0
NOT ~A = 1 jika A=0
OR A|B = 1 jika A=1 atau B=1
| 0 1
0 0 11 1 1
^ 0 1
0 0 1
1 1 0
Exclusive-Or (XOR) A^B = 1 jika A=1 atau B=1, tapi
tidak keduanya
21
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 22/35
Aplikasi Aljabar Boolean
A
~A
~B
B
Koneksi terjadi bila:
A&~B | ~A&B
Digunakan pada sistem digital oleh Claude Shannon Tesis Master di MIT 1937
Pemikiran tentang jaringan saklar relay Mengkodekan saklar tertutup = 1, saklar terbuka= 0
A&~B
~A&B = A^B
22
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 23/35
Integer Aritmatika
Integer aritmatika memiliki struktur matematika
yang dikenal sebagai “Ring” → disebut juga I nt eger Ring
Z, + , * , –, 0, 1 = Ring + adalah operasi “tambah”
* adalah operasi “kali”
– adalah penjumlahan inversi
0 adalah identitas untuk tambah
1 adalah identitas untuk kali
23
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 24/35
Aljabar Boolean
{ 0,1} , | , & , ~ , 0, 1 = Aljabar Boolean
| (OR) adalah operasi “tambah”
& (AND) adalah operasi “kali”
~ adalah operasi “komplemen” (bukan penjumlahaninversi)
0 adalah identitas untuk tambah
1 adalah identitas untuk kali
24
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 25/35
Aljabar Boolean ≈ Integer Ring
Komutatif
A | B = B | A A + B = B + A
A & B = B & A A * B = B * A
Asosiatif (A | B) | C = A | (B | C) (A + B) + C = A + (B + C)
(A & B) & C = A & (B & C) (A * B) * C = A * (B * C)
Distributif
A & (B | C) = (A & B) | (A & C) A * (B + C) = A * B + A * C
Identitas jumlahan dan perkalian
A | 0 = A A + 0 = A
A & 1 = A A * 1 = A
Nol adalah annihilator perkalian
A & 0 = 0 A * 0 = 0
Negasi dari negasi
~ (~ A) = A – (– A) = A
25
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 26/35
Aljabar Boolean ≠ Integer Ring
Boolean: Distributif
A | (B & C) = (A | B) & (A | C) A + (B * C) (A + B) * (B + C)
Boolean: Idempotency
A | A = A A + A A
“A True” atau “A True” = “A True”
A & A = A A * A A
Boolean: Absorpsi
A | (A & B) = A A + (A * B) A “A True” atau “A True dan B True” = “A True”
A & (A | B) = A A * (A + B) A
Boolean: hukum komplemen
A | ~A = 1 A + –A 1
“A True” atau “A False”
Ring: setiap elemen memiliki inversi penjumlahan
A | ~A 0 A + –A = 0
26
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 27/35
Boolean Ring
{0,1}, ^, &, , 0, 1 = Boolean Ring
Identik dengan integer mod 2 = Z2, +2, *2, –2, 0, 1
adalah operasi identitas: (A) = A
Sifat -sifat Boolean Ring :
Komutatif penjumlahan A ̂ B = B ̂ A
Komutatif perkalian A & B = B & A
Asosiatif penjumlahan (A ^ B) ^ C = A ^ (B ^ C)
Asosiatif perkalian (A & B) & C = A & (B & C)
Distributif A & (B ̂ C) = (A & B) ̂ (B & C)
0 identitas jumlah A ^ 0 = A
1 identitas kali A & 1 = A
0 annihilator kali A & 0 = 0
Inversi penjumlahan A ̂ A = 0
27
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 28/35
Relasi Antar Operasi
Hukum DeMorgan
Mengekspresikan & dalam bentuk |, dan sebaliknya
A & B = ~(~A | ~B)
A and B true jika and hanya jika A nor B false
A | B = ~(~A & ~B)
A or B true jika dan hanya jika A and B keduanya tidak false
Exclusive-OR menggunakan Inclusive OR
A ^ B = (~A & B) | (A & ~B)
Hanya satu dari A and B true
A ^ B = (A | B) & ~(A & B)
Salah satu A true, atau B true, tidak keduanya
28
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 29/35
Operasi Aljabar Boolean
Operasi vektor bit
Operasi bitwise (bit per bit)
Seluruh sifat-sifat aljabar Boolean digunakan di sini
01101001
& 01010101
01000001
01101001
| 01010101
01111101
01101001
^ 01010101
00111100
~ 01010101
1010101001000001 01111101 00111100 10101010
29
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 30/35
Representasi dan Operasi Set
Representasi Set Lebar w pada bit vector merepresentasikan subset { 0, …, w –1}
a j = 1 jika j I
A = 01101001 { 0, 3, 5, 6 }
76543210
B = 01010101 { 0, 2, 4, 6 }
76543210
Operasi Set A & B Irisan/Interseksi 01000001 { 0 , 6 }
A | B Union 01111101 { 0, 2, 3, 4, 5, 6 }
A ^ B Berbeda simetrik 00111100 { 2, 3, 4, 5 }
~ B Komplemen 10101010 { 1, 3, 5, 7 }
30
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 31/35
Operasi Bit dalam C
Operasi &, |, ~, ^ terdapat dalam bahasa C
Dapat digunakan pada setiap tipe data integer
long, int, short, char
Setiap representasi bilangan dilihat sebagai bit vector
Operasi bilangan dilakukan secara bit-wise
Contoh (tipe data char)
~0x41 --> 0xBE~010000012 --> 101111102
~0x00 --> 0xFF
~000000002 --> 111111112
0x69 & 0x55 --> 0x41
011010012 & 010101012 --> 010000012
0x69 | 0x55 --> 0x7D
011010012 | 010101012 --> 011111012
31
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 32/35
Operasi Logika dalam C
OPERASI LOGIKA BERBEDA DENGAN OPERASI BIT
Operator logika : &&, ||, !
0 dipandang sebagai “FALSE”
Segala sesuatu yang tidak nol dipandang sebagai “TRUE”
Selalu menghasilkan 0 atau 1
Terminasi awal
Operasi a && 5/a tidak akan menyebabkan pembagian dengan nol
Contoh (tipe data char)
!0x41 --> 0x00
!0x00 --> 0x01
!!0x41 --> 0x01
0x69 && 0x55 --> 0x01
0x69 || 0x55 --> 0x01
p && *p
32
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 33/35
Operasi Shift
Shift kiri: x << y
Shift argumen x ke kiri sebanyak y
posisi
Membuang bit paling kiri Bagian kanan diisi dengan 0
Shift kanan: x >> y
Shift argumen x ke kanan sebanyak
y posisi Membuang bit paling kanan
Logical shift
Bagian kiri diisi dengan 0
Arithmetic shift
Replikasi MSB bagian kanan
Digunakan pada representasiinteger two’s complement
01100010Argumen x
00010000<< 3
00011000Log. >> 2
00011000Arit. >> 2
10100010Argumen x
00010000<< 3
00101000Log. >> 2
11101000Arit. >> 2
0001000000010000
0001100000011000
0001100000011000
00010000
00101000
11101000
00010000
00101000
11101000
33
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 34/35
Contoh Operasi XOR
void funny(int *x, int *y)
{
*x = *x ^ *y; /* #1 */
*y = *x ^ *y; /* #2 */*x = *x ^ *y; /* #3 */
}
Bitwise XOR adalahbentuk penjumlahan
Setiap nilai memilikiinversi jumlah (additive inverse ) masing-masing
A ^ A = 0
B A Begin
B A^B1
(A^B)^B = A A^B2
A (A^B)^A = B3
A BEnd
*y*x
34
5/17/2018 TMD01 Bab04B Representasi Bit - slidepdf.com
http://slidepdf.com/reader/full/tmd01-bab04b-representasi-bit 35/35
Ringkasan
Semua berkisar tentang bit dan byte Bilangan
Program Teks
Mesin yang berbeda memiliki aturan berbeda Ukuran word
Urutan byte
Representasi
Aljabar Boolean adalah operasi matematika
Dasarnya mengkodekan “FALSE” = 0, “TRUE” = 1 Memiliki bentuk umum, digunakan pada operasi bit dalam C
Baik digunakan untuk merepresentasikan dan memanipulasi set
35