Jalur yang berfungsi untuk menyalurkan data dari suatu bagian ke bagian lainnya. Berisi 8, 16, 32 jalur sinyal paralel atau lebih yang mempunyai dua arah (bidirectional) dimana CPU dapat membaca dan mengirim data dari/ke memori atau port disebut
setiap jalur data membawa suatu unit data yang disebut
bit. satu bit jika dianalogikan sinyal logika berarti on/off. dimana on berarti dianggap ada tegangan 5volt, sedangkan off dianggap bertegangan 0volt.
data dapat direpresentasikan sebagai suatu seri dari satu (1) dan nol (0), dimana 1 berarti bit on dan 0 menandakan bit off. 8 bit yang dikelompokkan menjadi satu disebut
byte. suatu byte yang mempunyai nilai=0 direpresentasikan dalam bit menjadi 00000000.. jika byte tidak bernilai 0, maka jika dilihat dalam bentuk bit, akan terdapat kombinasi antara logic 1 dan 0.. dalam bahasa C, suatu byte dianggap suatu character yang disingkat/dikodekan menjadi char.
saat data direpresentasikan sebagai seri dari 1 dan 0, maka bisa dikatakan sebagai suatu sistem bilangan biner (binary), karena cuma pake 2 digit, kalo manusia kan biasanya pake 10 digit, mungkin karena jarinya ada 10 (sotoy mode on)
oh ya, bit paling kiri dari suatu byte disebut most significant bit (msb) , kalo bit paling kanan disebutnya least significan bit (lsb), contoh : suatu byte berisi 01110001, maka msb-nya bernilai "o" dan lsb-nya bernilai "1".
*sebagai catatan, bit itu singkatan dari binary digit.
Bit | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Baseexponent | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
Weights | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
dari tabel diatas, ada D0,D1,D2....D7 dimana itu semua adalah urutan dari bit-bit yang jumlahnya merupakan 1 byte (karena ada 8bit), lalu dibawahnya ada
Base exponent, yang merupakan pangkat dari setiap bit dimana setiap bit selanjutnya maka pangkatpun bertambah. pangkat-pangkat itu biasanya merupakan suatu bit dalam suatu bilangan biner, bit 0 dibagian paling kanan jadi lsb dan bit 7 dibagian paling kiri jadi msb. sedangkan
weight itu nilai desimal dari bit itu sendiri sesuai dengan kenaikan bit.
contohnya, jika ada byte dengan urutan bit 10001110, jadi untuk nilai desimalnya itu tinggal tambahin nilai (weight) yang bitnya logik 1, So, bit ke 7,3,2,1 logik 1 =128+8+4+2=142
CAra menunjukkan angka pada bahasa C itu pake notasi hexadesimal, atau
HEX, dimana hex itiu base 16, kalo biner itu kan base 2. kalo 8 bit digabung kan jadinya 1 byte atau octet, sedanngkan 4 bit yang digabung namanya nibble. dalam hex, 0000 itu nilaiya sama kaya biner yaitu 0, tapi kalo 1111 itu dalam hex nilainya "F". lihat tabel
Binary | Decimal | Hexadecimal | Binary | Decimal | Hexadecimal |
0000 | 00 | 0 | 1000 | 08 | 8 |
0001 | 01 | 1 | 1001 | 09 | 9 |
0010 | 02 | 2 | 1010 | 10 | A |
0011 | 03 | 3 | 1011 | 11 | B |
0100 | 04 | 4 | 1100 | 12 | C |
0101 | 05 | 5 | 1101 | 13 | D |
0110 | 06 | 6 | 1110 | 14 | E |
0111 | 07 | 7 | 1111 | 15 | F |
notasi hexadesimal itu sederhana, kan ada 16 digit, jadi pake digit 0 sampai 9, selanjutnya A sampai F untuk 10 sampai 15, sederhana, kan...? wkwkwkwk
kan sebelumnya udah dibahas, 1 byte itu 8 bit, 1 nibble itu 4 bit, jadi bisa dikatakan 1 byte itu ada 2 nibble, bener ga? dan katanya sama dengan bit yang punya lsb dan msb, nibble juga punya, di dalam byte, nibble sebelah kanan dalam byte ( 4 bit pertama) dinamakan
least significant nibble. disebut gitu karena itu sama aja 160 . untuk mendapatkan nilai desimal hexa yang dilihat dari nibblenya, ambil nilai nibble, kalikan sesuai pangkatnya dan tambahkan, contoh 9B=(9*16)+(11*1)=155,,
Untuk menunjukkan nilai
HEX dalam bahasa C, maka harus diawali "0x"(tanpa tanda kutip), misalkan untuk 9B, maka dalam program bahasa C harus dituliskan 0x9B atau 0x9b, untuk yang ini, notasi besar kecil tidak berpengaruh, walaupun banyak hal sensitiv dalam bahasa C,,(katanyaaa)
niiy ada tabel lagi, tapi yang ini pake bobot dalam notasi HEX (yang sering terlihat dalam operasi C)
Bit | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Baseexponent | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
Weights | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
HEX Weights | 0x80 | 0x40 | 0x20 | 0x10 | 0x08 | 0x04 | 0x02 | 0x01 |
selanjutnya,
words , suatu word biasanya 16 bit, D0 sampai D15, dibawah ada tabel pake nama bit dan hubungannya dengan bilangan biner base of 2
Bit | D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Baseexponent | 215 | 214 | 213 | 212 | 211 | 210 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
tabel berikutnya menunjukkan bit-bit dengan bobot HEXnya
Bit | D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 |
HEX Weights | 0x8000 | 0x4000 | 0x2000 | 0x1000 | 0x0800 | 0x0400 | 0x0200 | 0x0100 |
Bit | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
HEX Weights | 0x0080 | 0x0040 | 0x0020 | 0x0010 | 0x0008 | 0x0004 | 0x0002 | 0x0001 |
suatu
word dapat dipecah menjadi 4 nibble, yang dapat ditunjukkan dengan memperlihatkan 4 nibble sebagai 4-tempat angka heksadesimal.contohnya, angka desimal 19070 dapat diperlihatkan sebagai angka heksadesimal 0x4A7E.
0x4A7E = (4 * 163) + (10 * 162) + (7 * 161) + (14 * 160)
= ( 4 * 4096) + (10 * 256) + (7 * 16) + (14 * 1)
= 19070.
Dalam bahasa C, word lebih sering disebut integer. suatu integer dapat direpresentasikan dengan angka yang punya range dari nilai negatif atau positif, atau angka yang hanya bernilai positif saja. Dengan kata lain, integer dapat menjadi sign atau unsigned. sign integer dapat bernilai positif atau negatif, sedangkan unsigned integer hanya dapat bernilai positif saja. suatu unsigned integer 16-bit dapat bernilai 0 sampai 65535. biasa disingkat unsigned.
bit 15 digunakan sebagai sign bit pada signed integer. jika bitnya on, maka nilainya negatif. kalo off, nilainya positif. nilai positif punya range dari 0 sampai 32767, sedangkan nilai negatif punya range dari -1 sampai -32767. beberapa contoh apat dilihat dibawah
*catat bahwa nilai signed sama dengan -1*(65536- nilai unsigned). contoh, untuk mendapatkan nilai signed dari unsigned 49151, maka -1*(65536-49151) = -16835
HEX | 8000 | BFFF | FFFE | FFFF | 0000 | 3FFF | 7FFE | 7FFF |
Signed | -32768 | -16385 | -0002 | -0001 | 00000 | 16383 | 32766 | 32767 |
Unsigned | 32768 | 49151 | 65534 | 65535 | 00000 | 16383 | 32766 | 32767 |
suatu
long word umumnya dianggap sebagai 4 byte atau 32 bit. digunakan kalo mau pake angka yang besar. juga ada signed dan unsigned. untuk signed punya range
-2,147,483,648 sampai 2,147,483,647. dan untuk yang unsigned punya range dari 0 sampai 4,294,967,295...
sampe sini dulu, udah kebanyakan, tulisannya,,,, nanti dilanjutin lagi..
next : "Boolean Logic"