8.10.2009

jalur data, bit, nibble, byte, word, binary dan HEX

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 jalur data. pengelompokan dari jalur data disebut data bus.

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

BinaryDecimalHexadecimal BinaryDecimalHexadecimal
0000000 1000088
0001011 1001099
0010022 101010A
0011033 101111B
0100044 110012C
0101055 110113D
0110066 111014E
0111077 111115F

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"

2 comment:

Anonymous said...

Hi there! I could have sworn I've been to this website before but after browsing through some of the post I realized it's new to me.
Nonetheless, I'm definitely happy I found it and I'll be book-marking and checking back often!



Also visit my blog post play roulette

Unknown said...

Artilel yg bagus dan mudah dipahami.