Bab 3: Operasi Bilangan Biner pada Mikroprosesor

Bab 3 Operasi Bilangan Biner Pada Mikroprosesor



Bab 3: Operasi Bilangan Biner pada Mikroprosesor

3.1 Pendahuluan

Di komputer, operasi aritmatika dilakukan dalam 8 bit, 16 bit, 32 bit, atau 64 bit. Angka seperti 3 dalam biner adalah 11. Jika operasi dilakukan dalam 8 bit, ini dianggap sebagai 00000011; mendahuluinya dengan 0 nol.







Untuk bilangan biner seperti 10000101, bit paling signifikan adalah bit paling kiri. Ini adalah 1 dalam kasus ini. Bit paling tidak signifikan adalah bit paling ekstrim di sebelah kanan, yang masih 1, untuk angka tersebut. Bit paling signifikan disingkat MSB. Bit paling tidak signifikan disingkat LSB.



DigiT BInary disingkat BIT dan hanya ditulis sebagai bit. Pada bilangan 10010011, masing-masing satu atau nol adalah sedikit. Sekelompok empat bit disebut nibble. Sekelompok delapan bit disebut byte. Satu byte terdiri dari dua camilan. Nibble yang lebih rendah adalah nibble untuk LSB dan nibble yang lebih tinggi adalah nibble untuk MSB.



Sekelompok 8 bit, 16 bit, 32 bit, atau 64 bit disebut kata, selama kelompok tersebut menyampaikan informasi lebih dari sekadar menunjukkan angka. Grup disebut kata, misalnya jika itu adalah instruksi tingkat rendah di komputer. Ada juga kata 24 bit, tapi itu tidak umum digunakan saat ini.





Endianness mengacu pada urutan byte membentuk sebuah kata. Pertimbangkan kata 24-bit – 100100001111010100100010. Kata ini terdiri dari tiga byte yaitu:

10010000 11110101 00100010



Byte paling signifikan adalah byte paling kiri. Jika byte di paling kiri adalah byte paling signifikan dan byte di paling kanan adalah byte paling tidak signifikan, ini disebut sebagai representasi kata Big Endian. Representasi Little Endian justru sebaliknya.

Memori komputer adalah serangkaian sel, dan setiap sel menampung satu byte. Sel pertama dalam memori komputer untuk byte 0, sel kedua untuk byte 1, sel ketiga untuk byte 2, dan seterusnya. Dengan big endianness dan untuk word sebelumnya, byte paling signifikan disimpan di sel byte 0, byte tengah disimpan di sel byte 1, dan byte paling tidak signifikan disimpan di sel byte 2. Ini berarti ada byte yang lebih signifikan di sel memori yang lebih rendah.

Kata 24-bit sebelumnya dapat ditulis dalam urutan byte terbalik sebagai berikut:

00100010 11110101 10010000

Sekarang, byte terkecil ada di paling kiri dan byte paling signifikan ada di paling kanan. Jika byte di paling kiri adalah byte paling tidak signifikan dan byte di paling kanan adalah byte paling signifikan, maka ini adalah representasi Little Endian dari kata tersebut. Dengan sedikit endianness dan untuk word sebelumnya, byte terkecil disimpan di sel byte 0, byte tengah disimpan di sel byte 1, dan byte paling signifikan disimpan di sel byte 2. Ini berarti ada byte yang kurang signifikan di sel memori bawah.

Endianness tidak digunakan untuk bit dalam satu byte. Itu juga tidak digunakan untuk camilan dalam satu byte. Ini hanya digunakan untuk pesanan byte.

Garis Angka
Bilangan yang tidak mempunyai tanda adalah bilangan positif. Bilangan positif adalah bilangan dari nol ke atas. Angka negatif juga ada. Bilangan positif dan bilangan negatif dapat direpresentasikan pada garis bilangan. Garis bilangan berikut menunjukkan bilangan bulat positif dan negatif (bilangan bulat) mendekati nol:

Bilangan negatif berkurang dari nol ke bawah (ke kiri). Dalam banyak situasi, nol dianggap positif. Namun, hal ini dianggap negatif dalam beberapa situasi. Itu sebabnya ada tanda plus dan minus di depan angka nol, di penomoran bawah, pada diagram. Jika suatu bilangan positif, tandanya dapat dihilangkan; ini adalah kasus untuk penomoran atas pada diagram. Tanda minus di depan bilangan negatif tidak pernah dihilangkan.

3.2 Penjumlahan Bilangan Biner

Selain itu:

A + B = S

A disebut tambahan, B disebut penjumlahan, dan S disebut penjumlahan.

Perhatikan penjumlahan dua bilangan positif pada basis dua berikut ini:

Pada basis dua, satu-satunya angka yang mungkin adalah 0 dan 1. Penjumlahan pada basis 2 sama dengan penjumlahan pada basis sepuluh, namun dua pada basis dua sama dengan satu nol (10). Jika jumlah dua bit dalam suatu kolom adalah 10, 0 ditulis dan 1 dibawa ke kolom paling kiri; untuk ditambahkan ke jumlah dua bit di sana. Jika jumlah totalnya tiga, berarti 11 di basis dua. 1 kanan dalam 11 ditulis dan 1 kiri dibawa untuk ditambahkan ke jumlah bit kolom kiri terdekat. Dalam kedua kasus tersebut, angka 1 yang dibawa ke kiri disebut carry.

Membaca tabel penjumlahan sebelumnya dari kanan, pada kolom kedua (dari kanan) terdapat carry yang hasil dari 1+1 = 10. Pada kolom ketiga terdapat carry yang hasil dari 1+1+ carry dari 1 = 11. Pada kolom keempat terdapat carry yang merupakan hasil dari 0+1+ carry sebesar 1 = 10. Pada kolom kelima tidak terdapat carry karena penjumlahannya adalah 0+0+ carry sebesar 1 = 1. kolom lainnya tidak melibatkan pengangkutan.

Penghitungan kolom dimulai dari ujung kanan. Dengan penambahan 16-bit, dapat terjadi perpindahan dari kolom kedelapan ke kolom kesembilan (bergerak ke kiri). Tabel berikut menggambarkan hal ini:

Operasi aritmatika dan logika berlangsung di mikroprosesor pada motherboard komputer.

Untuk komputer kata 8-bit, carry tidak dapat berpindah dari bit kedelapan ke bit kesembilan secara otomatis oleh perangkat keras. Jadi, untuk menambahkan dua grup 16-bit di komputer seperti itu, penambahan harus dilakukan dua kali dalam delapan-delapan pasangan bit. Carry tersebut dipindahkan dan dipengaruhi oleh perangkat lunak (pemrograman).

Untuk menjumlahkan dua bilangan, bilangan-bilangan tersebut dapat diubah terlebih dahulu ke bentuk komplemen keduanya (lihat di bawah) sebelum dijumlahkan.

3.3 Komplemen Dua dan Pengurangan Bilangan Binernya

Pada motherboard komputer, terdapat memori dan terdapat mikroprosesor serta sirkuit lainnya. Memori adalah serangkaian sel delapan bit. Untuk satu byte, setiap bit masuk ke dalam sel. Mikroprosesor memiliki beberapa lokasi tipe memori. Lokasi tipe memori ini disebut register. Jadi, di komputer, kelompok byte dapat disimpan sementara di memori atau di register mikroprosesor.

Di salah satu penyimpanan ini, setiap sel dapat mengambil angka 1 atau 0, dan tidak ada yang lain. Dalam kehidupan, ada angka positif dan negatif. Bilangan positif diawali dengan tanda tambah (+) dan bilangan negatif diawali dengan tanda negatif (-). Jika tandanya dihilangkan, bilangan tersebut dianggap bilangan positif.

Untuk mengatasi masalah penunjukan tanda suatu bilangan di komputer, bilangan bulat disimpan dalam rentang. Bilangan bulat adalah bilangan bulat. Jika delapan bit digunakan untuk menyimpan rentang angka yang mungkin, bit paling kiri digunakan sebagai bit tanda. Jika suatu bilangan diawali dengan 0, maka bilangan tersebut adalah bilangan positif. Jika dimulai dengan 1, maka bilangan tersebut adalah bilangan negatif. Jika enam belas bit digunakan untuk menyimpan rentang angka yang mungkin, bit paling kiri digunakan sebagai bit tanda. Jika bilangan tersebut diawali dengan 0, maka bilangan tersebut adalah bilangan positif. Jika dimulai dengan 1, maka bilangan tersebut adalah bilangan negatif. Angka-angka dalam bentuk ini disebut angka bertanda.

Dalam prakteknya, bisa ada nomor bertanda untuk 8 bit, 16 bit, 32 bit, dan 64 bit. Semakin luas jumlah bit yang digunakan, semakin besar pula kemungkinan angka yang dapat disimpan.

Bilangan Bulat Komplemen Dua
Dengan komplemen dua, bilangan positif adalah bilangan hitung normal, kecuali digit paling kiri adalah 0. Untuk mendapatkan bilangan negatif yang sesuai untuk bilangan positif tertentu, balikkan setiap bit bilangan tersebut dan tambahkan 1 pada hasilnya. Invert atau komplemen dari 0 adalah 1. Invert atau komplemen dari 1 adalah 0. Tabel berikut menunjukkan bilangan komplemen dua dalam rentangnya:

Tabel 3.31
Bilangan Bulat Komplemen Dua dalam Dua Bit
Biner Desimal
01 +1
00 +0
sebelas -1
10 -2

Bilangan biner positif adalah 00 dan 01 (yaitu nol dan satu). Di bagian paling kiri, angka nol menunjukkan bahwa itu adalah bilangan positif. 00 agak berada di tengah kisaran. Untuk mendapatkan -1, invert dari bilangan 01 adalah 10. Menambahkan 1 ke bilangan ini (paling kanan) menghasilkan 11.

Karena dua bit digunakan, hanya satu bit yang tersisa untuk mewakili angka-angka dalam rentang yang terdiri dari angka +1, +0, dan -1 yang sesuai dengan 01, 00, dan 11. Bit pertama menunjukkan tanda. Kebetulan 10 untuk +2 tidak termasuk di antara ketiga bilangan biner ini. 10 diawali dengan 1 yang artinya harus berupa bilangan negatif pada komplemen dua. Jadi, 10 termasuk dalam rentang tersebut, artinya -2.

Dengan dua bit dalam komplemen dua, jumlah seluruh bilangan bulat (positif dan negatif) yang dapat direpresentasikan adalah 2 2 = 4 dan bukan 2 2 -1 = 3. Nuansanya dihasilkan dari pencantuman bilangan negatif terakhir yang merupakan negatif dari 2 nomor dengan – 1. Dalam hal ini, -2 2-1 = -2 1 = -2. Tidak ada +2 pada rentang bilangan komplemen dua dalam 2 bit.

Tabel 3.32
Bilangan Bulat Komplemen Dua dalam Empat Bit
Biner Desimal
0111 +7
0110 +6
0101 +5
0100 +4
0011 +3
0010 +2
0001 +1
0000 +0
1111 -1
1110 1110
1101 -3
1101 -3
1100 -4
1011 -5
1010 -6
1001 1001
1000 -8

Bilangan biner positif berkisar antara 0000 hingga 0111 (yaitu dari nol hingga tujuh). Di bagian paling kiri, angka nol menunjukkan bahwa itu adalah bilangan positif. 0000 agak berada di tengah kisaran. Untuk mendapatkan -1, invert dari bilangan 0001 adalah 1110. Menambahkan 1 ke bilangan ini (di paling kanan) menghasilkan 1111. Untuk mendapatkan -2, invert dari 0010 adalah 1101. Menambahkan 1 ke bilangan ini ( dari paling kanan) menghasilkan 1110. Bilangan biner negatif lainnya seperti -3 hingga -7 juga ditentukan dengan cara yang sama.

Karena empat bit digunakan, tiga bit tersisa untuk mewakili angka dalam rentang tersebut yaitu +7, +6, +5, +4, +3, +2, +1, +0, -1, -2, - 3, -4, -5, -6 dan -7 sesuai dengan 0111, 0110, 0101, 0100, 0011, 0010, 0001, 0000, 1111, 1110, 1101, 1100, 1011, 1010, dan 1001.

Angka -8 yang setara dengan 1000 harus ditangani secara terpisah. Bit pertama untuk semua angka ini menunjukkan tanda 0 untuk angka positif dan 1 untuk angka negatif. Kebetulan 1000 tidak termasuk dalam empat belas bilangan biner ini. 1000 diawali dengan 1 yang artinya harus berupa bilangan negatif, sejauh menyangkut komplemen dua. Jadi, 1000 termasuk dalam kisaran tersebut, artinya -8.

Dengan empat bit dalam dua komplemen, jumlah seluruh bilangan bulat (positif dan negatif) yang dapat direpresentasikan adalah 2 4 = 16 dan bukan 2 4 – 1 = 15. Nuansanya dihasilkan dari pencantuman bilangan negatif terakhir yang merupakan negatif dari 2 nomorLebar – 1. Dalam hal ini, -2 4 -1 = -2 3 = -8. Tidak ada +8 dalam rentang angka.

Analisis sebelumnya untuk bit dua, empat, dan lebih lebar dalam komplemen dua dapat diterapkan pada bilangan biner lebar 8 bit, 16 bit, 32 bit, dan 64 bit.

Komplemen dua mengorbankan bit pertama (paling kiri) untuk tanda 0 untuk bilangan positif dan 1 untuk bilangan negatif. Untuk kelompok bit lebar “n”, ada 2 N total bilangan positif ditambah bilangan negatif. Itu akan menjadi 2 N -1, kalau bukan karena angka negatif terakhir (terkecil) yang beruntung disertakan. Angka positif tertinggi adalah +2 n-1 -1 dan bilangan negatif terkecil adalah -2 n-1 -1. Itu akan menjadi -2 n-1 -1, kalau bukan karena yang beruntung -2 n-1 termasuk.

Pengurangan Bilangan pada Komplemen Dua
Dalam pengurangan:

SEBUAH – B = D

A disebut minuend, B disebut pengurang, dan D disebut selisih.

Untuk mengurangkan suatu bilangan biner positif dari bilangan biner positif yang lain, maka minuendnya dituliskan dalam komplemen dua dan pengurangnya diubah menjadi nilai komplemen dua negatifnya. Jadi, pernyataan matematisnya menjadi:

SEBUAH+ – B = D

Dengan kata lain, pada pengurangan komplemen dua, pengurang diubah menjadi bilangan negatif dan kemudian ditambahkan ke minuend.

Contoh 3.31:
Evaluasi ekspresi desimal berikut dalam komplemen dua menggunakan empat bit:

6 – 4

Larutan:
Bilangan biner untuk 6 adalah 110. Dalam komplemen dua 4-bit adalah 0110. Bilangan biner untuk +4 adalah 100. Dalam komplemen dua 4-bit adalah 0100. 0100 yang harus diubah menjadi negatif 4 dalam dua komplemen sebagai berikut: Komplemen atau inversi dari 0100 adalah 1011. Menambahkan 1 dari ujung kanan, seperti yang kita lakukan sebagai penjumlahan, menghasilkan 1100. Jadi, persamaan desimalnya adalah:

6 – 4 yang menjadi:

0110 – 0100 yaitu

0110 +(– 0100) = 0110 + 1100 dilakukan seperti pada bagian penjumlahan sebelumnya sebagai:

Catatan: 0110 +(– 0100) sama dengan 6 + – 4

Dengan pengurangan komplemen dua, setiap carry, setelah kolom terakhir ke kiri, sebagai tambahan, dibuang. Saat mengurangkan dalam desimal, pernyataan matematikanya adalah:

6 – 4 = 2

Melakukan hal yang sama pada komplemen dua, jawabannya adalah 0010 yaitu +2 pada penghitungan biner komplemen dua. Pengurangan sebelumnya mengurangkan bilangan yang lebih kecil dari bilangan yang lebih besar. Pada contoh berikut, bilangan yang lebih besar dikurangkan dari bilangan yang lebih kecil. Tabel 3.32 dapat dilihat untuk melihat apakah 0010 benar-benar merupakan komplemen dua yang ekuivalen dengan +2.

Contoh 3.32:
Evaluasi ekspresi desimal berikut dalam komplemen dua dengan empat bit:

4 – 6

Larutan:
Bilangan biner untuk 4 adalah 100. Pada komplemen dua 4-bit adalah 0100. Bilangan biner untuk +6 adalah 110. Pada komplemen dua 4-bit adalah 0110. 0110 harus diubah menjadi negatif 6 pada komplemen dua sebagai berikut: Komplemen atau inversi dari 0110 adalah 1001. Menambahkan 1 dari ujung kanan, seperti yang kita lakukan pada penjumlahan sebelumnya, menghasilkan 1010. Jadi, persamaan desimalnya adalah:

4 – 6 yang menjadi:

0100 – 0110 yaitu

0100 +(– 0110) = 0100 + 1010 dilakukan seperti pada bagian penjumlahan sebelumnya sebagai:

Catatan: 4+ – 6 sama dengan 0100 +(– 0110).

Dengan pengurangan komplemen dua, setiap carry, setelah kolom terakhir ke kiri, sebagai tambahan, dibuang. Saat mengurangkan dalam desimal, pernyataan matematikanya adalah:

4 – 6 = -2

Melakukan hal yang sama pada komplemen dua, jawabannya adalah 1110 yaitu -2 dalam penghitungan biner komplemen dua. Tabel 3.32 dapat dilihat untuk melihat apakah 1110 benar-benar merupakan komplemen dua yang setara dengan -2.

3.4 Perkalian Bilangan Biner

Dalam pernyataan:

A x B = P

A disebut pengali, B disebut pengali, dan P disebut hasil kali. Ekspresi A x B berarti menjumlahkan A, B beberapa kali ketika A dan B bilangan bulat (bilangan bulat).

Perkalian biner sama dengan perkalian desimal. Namun, alih-alih melakukannya dalam desimal, hal ini dilakukan dalam biner. Perkalian ekspresi desimal 42 x 10 dilakukan dalam biner sebagai berikut dimana 42 10 = 101010 2 dan 10 10 = 1010 2 :

Empat bilangan yang dijumlahkan disebut hasil perkalian parsial. Jawabannya adalah produknya. Penambahan produk parsial dilakukan dengan cara yang sama seperti yang dijelaskan sebelumnya.

Perkaliannya juga dapat dilihat sebagai berikut: Pada perkalian basis dua ini, jika bit (digit) pada pengalinya adalah 1, maka bit paling penting dari perkalian parsialnya adalah bit paling tidak berarti dari perkaliannya dan diketik ulang tepat di bawahnya; dan sisa bit perkaliannya diulangi ke kiri. Dalam perkalian basis dua ini, jika bit (digit) pengali adalah 0, hasil perkalian parsialnya terdiri dari 0 dengan bit paling signifikan 0 tepat di bawahnya. Jumlah semua angka nol adalah jumlah bit dalam perkalian.

3.5 Pembagian Bilangan Biner

Dalam pernyataan:

A − B = Q

A disebut Dividen, B disebut Pembagi, dan P disebut Hasil Bagi. Hasil bagi dapat disertai dengan sisa. Ekspresi A − B berarti berapa kali B dapat dijumlahkan untuk menghasilkan A atau mendekatinya sehingga sisanya adalah 0 atau lebih kecil dari B.

Pembagian dapat dilakukan dengan banyak cara. Pembagian yang ditunjukkan disini adalah pembagian restorasi.

Memulihkan Divisi
Ini adalah metode pembagian panjang yang dipelajari di sekolah. Kalau 237 dibagi 6, jawabannya 39 sisa 3. 237 10 di basis 2 adalah 11101101 2 dan 6 10 di basis 2 adalah 110 2 . 39 10 di basis 2 adalah 100111 2 dan 3 10 di basis 2 adalah 11 2 .

Jadi, 11101101 2 dibagi 110 2 memberikan 100111 2 sisa 11 2 di basis dua. Dengan metode restorasi, bilangan biner merupakan bilangan biasa dan belum tentu merupakan bilangan komplemen. Struktur berikut membagi 11101101 2 oleh 110 2 untuk memberikan 100111 2 sisa 11 2 :

Pengurangan biasanya dilakukan dan tidak menggunakan komplemen keduanya. Karena ini adalah basis dua, pinjaman adalah dua dan bukan sepuluh. Dividen parsialnya adalah 10, 101, 1011, 1010, dan 1001. 11 adalah sisanya. Karena pembagi mempunyai tiga angka, maka pembagian pada dasarnya dilakukan dalam kelompok yang terdiri dari tiga angka dari pembagian yang diberikan. Hasil bagi adalah bilangan bulat (bilangan bulat), dan untuk soal ini adalah 100111. Hasil bagi dan sisanya sesuai dengan yang diharapkan.

3.6 Operasi Aritmatika dengan Perangkat Lunak dan Perangkat Keras

Motherboard komputer memiliki jam. Detik jam disebut pulsa. Pada setiap pulsa clock, satu atau lebih keputusan diambil di tempat berbeda pada motherboard; dan itu ada hubungannya dengan pemrograman (perangkat lunak).

Di dalam mikroprosesor terdapat dua macam rangkaian yang disebut: Rangkaian Logika Kombinasional dan Rangkaian Logika Sekuensial. Ada jenis sirkuit lain yang disebut multiplexer. Penjumlahan, perkalian, dan pembagian dapat dilakukan dalam satu interval clock dengan menggunakan logika kombinasional (rangkaian). Sedangkan pemrograman (perangkat lunak) melakukan keputusan pada setiap pulsa clock menggunakan rangkaian logika sekuensial dan multiplexer.

Ketika pengurangan dilakukan menggunakan komplemen dua, setidaknya diperlukan dua pulsa clock. Pada pulsa clock pertama, multiplexer menyalurkan pengurangnya ke sekumpulan gerbang NOT (satu gerbang NOT per digit). Pada pulsa clock kedua, logika kombinasional menambahkan 1 pada keluaran gerbang NOT dan terus menambahkan hasil pengurangan dan pengurangan. Semua penambahan itu dapat terjadi dalam satu interval jam.

Penjumlahan, perkalian, dan pembagian masih bisa dilakukan dengan pemrograman menggunakan tabel kebenaran. Namun, hal itu tidak tercakup dalam kursus karir online ini.

3.7 Operasi Logika pada Mikroprosesor

DAN, ATAU, XOR, dan Balikkan

DAN
Tabel berikut menggambarkan Bitwise AND. Artinya, untuk dua bilangan biner yang berbeda, bit-bit yang bersesuaian akan di-AND berdasarkan tabel AND Truth:

Bergerak dari kiri ke kanan, 1 DAN 1 = 1; 0 DAN 1 = 0; 0 DAN 0 = 0; 1 DAN 0 = 0; dan seterusnya sesuai dengan Tabel Kebenaran AND.

ATAU
Tabel berikut mengilustrasikan Bitwise OR. Ini berarti bahwa untuk dua bilangan biner yang berbeda, bit-bit yang bersesuaian akan di-OR berdasarkan tabel Kebenaran OR:

Bergerak dari kiri ke kanan, 1 ATAU 1 = 1; 0 ATAU 1 = 1; 0 ATAU 0 = 0; 1 ATAU 0 = 1; dan seterusnya sesuai dengan Tabel Kebenaran OR.

BEBAS
Tabel berikut mengilustrasikan Bitwise eksklusif-OR. Ini berarti bahwa untuk dua bilangan biner yang berbeda, bit-bit yang bersesuaian di-XOR berdasarkan tabel Kebenaran XOR:

Bergerak dari kiri ke kanan, 1 XOR 1 = 0; 0 XOR 1 = 1; 0 XOR 0 = 0; 1 XOR 0 = 1; dan seterusnya sesuai dengan Tabel Kebenaran XOR.

Balikkan (TIDAK)
Tabel berikut mengilustrasikan Bitwise NOT (membalikkan). Artinya untuk satu bilangan biner, kali ini setiap bit dibalik berdasarkan Tabel Kebenaran NOT:

Bergerak dari kiri ke kanan, BUKAN 1 = 0; BUKAN 0 = 1; BUKAN 0 = 1; BUKAN 1 = 0; dan seterusnya sesuai dengan Tabel Kebenaran NOT.

Bergeser ke Kanan atau Kiri

Geser ke Kanan
Bilangan biner berikut digeser 3 posisi bit ke kanan, dengan angka nol dimasukkan ke posisi bit yang dikosongkan di sebelah kiri:

Pergeserannya bisa dilakukan untuk satu, dua, tiga, empat, dan seterusnya.

Geser ke Kiri
Bilangan biner berikut digeser 3 posisi bit ke kiri, dengan angka nol dimasukkan ke posisi bit yang dikosongkan di sebelah kanan:

Pergeserannya bisa dilakukan untuk satu, dua, tiga, empat, dan seterusnya.

Memutar ke Kanan atau Kiri

Berputar mirip dengan pergeseran. Hal ini dilakukan sedikit demi sedikit. Saat diputar ke kanan, bit yang keluar dari ujung kanan tidak rontok seperti saat digeser; mereka mengganti bagian yang kosong di sebelah kiri, satu per satu. Saat diputar ke kiri, bit yang keluar dari ujung kiri tidak jatuh seperti saat digeser; mereka mengganti bagian yang kosong di sebelah kanan, satu per satu.

Putar ke kanan
Bilangan biner berikut diputar 3 posisi bit ke kanan:

Pemutaran dapat dilakukan untuk satu, dua, tiga, empat, dan seterusnya.

Rorata Kiri
Bilangan biner berikut diputar posisi 3 bit ke kiri:

Pemutaran dapat dilakukan untuk satu, dua, tiga, empat, dan seterusnya.

3.8 Kumpulan Karakter ASCII dan Nilai Kodenya

ASCII adalah singkatan dari “Kode Standar Amerika (U.S.A) untuk Pertukaran Informasi”. Bayangkan sebuah keyboard dengan 96 tombol. Ini adalah keyboard ideal yang tombol huruf besarnya berbeda dengan tombol huruf kecil. Setiap tombol lainnya mewakili karakter yang ditemukan pada papan ketik Bahasa Inggris (AS). Karakter dan kode (nomor yang sesuai untuk karakter) tercantum sebagai berikut:

Dalam tabel ini, 32 karakter pertama (termasuk karakter dengan 00 16 = 0 10 kode) adalah karakter non-cetak. Mereka adalah karakter kontrol. Mereka tidak terlihat di layar (monitor) dimana semuanya sama. Mereka hanya mempunyai efek. Mari kita bahas lebih lanjut nanti.

Karakter lainnya adalah karakter pencetakan; mereka terlihat di layar. Ada 128 karakter ASCII. 2 7 = 128.1.111.111 2 = 127 10 . 7 dalam 2 7 berarti 7 bit.

Sekarang, 1111111 2 + 1 2 sama dengan:

Di sini, 10.000.000 2 = 128 10 . Ada 128 10 karakter dalam daftar (tabel) karakter ASCII sebelumnya. Ini termasuk karakter null, yang kodenya dalam basis enam belas (heksadesimal) adalah 00, yang setara dengan 0 dalam basis sepuluh.

Karena totalnya ada 128 karakter, 128 dikurangi 32 karakter non-cetak menghasilkan 96 karakter cetak. Pada bagian ini diasumsikan terdapat keyboard ideal dengan 96 karakter yang merupakan karakter yang dapat dicetak. Pada keyboard ideal ini, tombol untuk karakter bahasa Inggris huruf besar berbeda dengan tombol karakter bahasa Inggris huruf kecil.

Setiap karakter pada keyboard diwakili oleh dua angka dasar 7 bit yang tidak ditampilkan dalam daftar. Huruf besar “N”, misalnya, diwakili oleh tujuh bit 1001110 di basis 2. Untuk mengkonversi 1001110 2 ke basis 16, awali dengan 0 dan kelompokkan hasilnya dalam subgrup empat bit sebagai berikut:

| 0100 | 1110 | 2 = | 4 | E | 16

Itu adalah 01001110 2 = 4E 16 . Untuk mengkonversi 4E 16 ke basis sepuluh, lakukan hal berikut:

4x (16) 1 + E x (16) 0 = 4 x 16 + E x 1 = 4 x 16 + 14 x 1 = 64 + 14 = 78 10

Di sebelah kanan “N” pada daftar (tabel) terdapat angka heksadesimal 4E dan angka desimal 78.

Sebagai contoh lain, karakter “[“ diwakili oleh tujuh bit 1011011 di basis 2. Untuk mengkonversi 1011011 2 ke basis 16, awali dengan 0 dan kelompokkan hasilnya dalam subgrup empat bit sebagai berikut:

| 0101 | 1011 | 2 = | 5 | B | 16

Itu adalah 01011011 2 = 5B 16 . Untuk mengonversi 5B16 ke basis sepuluh, lakukan hal berikut:

5x (16) 1 + B x (16) 0 = 5 x 16 + B x 1 = 5 x 16 + 11 x 1 = 80 + 11 = 91 10

Di sebelah kanan “[“ dalam daftar (tabel) terdapat angka heksadesimal 5B dan angka desimal 91.

Contoh lainnya, karakter angka desimal “5” diwakili oleh tujuh bit 0110101 pada basis 2, dan bukan 0000101 dalam basis 2. Untuk mengonversi 0110101 2 ke basis 16, awali dengan 0 dan kelompokkan hasilnya dalam subgrup empat bit sebagai berikut:

| 0011 | 0101 | 2 = | 5 | B | 16

Itu adalah 00110101 2 = 35 16 . Untuk mengubah 3516 menjadi basis sepuluh, lakukan hal berikut:

3x (16) 1 + 5x (16) 0 = 3 x 16 + 5 x 1 = 3 x 16 + 5 x 1 = 48 + 5 = 53 10

Di sebelah kanan “5” dalam daftar (tabel) terdapat angka heksadesimal 35 dan angka desimal 53.

Karena komputer bekerja dalam byte, ketika tombol pada keyboard ideal ditekan, delapan bit dikirim ke mikroprosesor (motherboard). Keyboard yang ideal adalah perangkat yang terpisah dari unit sistem (dasar) komputer. Ia memiliki sirkuit elektronik (IC) yang menciptakan tujuh bit dan mengawalinya dengan angka nol sebelum mengirimkannya melalui kabelnya ke motherboard unit sistem. Dari port input (rangkaian input) motherboard, menuju ke mikroprosesor yang juga ada pada motherboard. Dari mikroprosesor menuju ke memori yang juga dipasang pada motherboard.

Jadi, ketika tombol “N” pada keyboard ideal ditekan, delapan bit 01001110 dibawa ke mikroprosesor. Dari mikroprosesor, mereka dibawa ke memori di mana mereka tetap berada di lokasi memori sebagai byte. Pemrogram komputer harus ingat bahwa delapan bit 01001110 2 sama dengan 4E 16 yang sama dengan 78 10 .

Ketika tombol “[“pada keyboard ideal ditekan, delapan bit 01011011 dibawa ke mikroprosesor. Dari mikroprosesor, mereka dibawa ke memori di mana mereka tetap berada di lokasi memori sebagai byte. Pemrogram komputer harus ingat bahwa delapan bit 01011011 2 sama dengan 5B 16 yang sama dengan 91 10 .

Ketika tombol “5” pada keyboard ideal ditekan, sebagai karakter dan bukan sebagai angka desimal, delapan bit 00110101 dibawa ke mikroprosesor. Dari mikroprosesor, mereka dibawa ke memori di mana mereka tetap berada di lokasi memori sebagai byte. Pemrogram komputer harus ingat bahwa delapan bit 00110101 2 sama dengan 35 16 yang sama dengan 5310 10 .

Ada kalanya suatu program sedang berjalan dan menunggu angka desimal 5 diinput ke komputer. Dalam situasi ini, jika tombol “5” pada keyboard ideal ditekan, kode delapan bit 00110101 tetap dibawa ke mikroprosesor. Karena yang dibutuhkan adalah bilangan desimal 5, dan bukan karakter “5”, maka potongan kode (program pendek) dari memori menggunakan mikroprosesor untuk mengubah kode karakter 00110101 pada basis dua menjadi bilangan komplemen dua 00000101 2 sebelum mengirimkannya ke lokasi memori sebagai byte komplemen dua. Pemrogram komputer harus ingat bahwa 00000101 berarti 5 10 pada basis 2, dan berbeda dengan nomor kode 00110101 2 , 35 16 , dan 53 10 yang berarti karakter “5”. Untuk menampilkan bilangan komplemen keduanya yaitu 00000101 di memori, program pendek lain harus mengubah 00000101 dari memori menjadi 00110101. Ini adalah 00110101 yang sama dengan 35 16 yang sama dengan 53 10 yang ditampilkan pada monitor (atau dicetak pada kertas oleh printer).

3.9 Format Angka Titik Mengambang

Bilangan tanpa bagian desimal adalah bilangan bulat. Angka 36 adalah bilangan bulat. 36.375 bukan bilangan bulat. Ini adalah angka desimal dengan bagian desimal. Bagian desimal dari 0,375 adalah pecahan yang kurang dari 1.

36.375 diartikan dalam bentuk desimal sebagai:

Sekarang:

Jadi, 100100 2 = 3610 yang merupakan bagian bilangan bulat dari 36.375 10 .

Sekarang:

Jadi, 0,011 2 = 0,375 10 yang merupakan bagian bilangan desimal dari 36.375 10 .

∴ 36,375 10 = 100100.011 2

Dengan kata lain:

100100.011 2 = 36.375 10

Angka-angka direpresentasikan di komputer dalam basis 2 dan bukan dalam basis 10, semuanya dianggap sama. Karena sel dalam register di mikroprosesor atau sel di memori hanya dapat menampung 1 atau 0, tidak ada ruang untuk menyimpan koma desimal. Hal ini menimbulkan masalah. Sebagai resolusi, terdapat representasi floating point 32-bit presisi tunggal IEEE-754 dan representasi floating point 64-bit presisi ganda IEEE-754.

Format Angka Titik Mengambang 32-Bit
Angka 100100.0112 dapat dinyatakan sebagai:

100100.011 2 = 1,00100011 2 x 2 +5

Sisi kanan simbol = dalam matematika disebut sebagai bentuk standar dua basis dari sisi kiri 100100.011 2 .

Sekarang, 00100011 dari 1,00100011 2 di sisi kanan simbol =, tanpa “1” sebelumnya. dan tanpa 2 sebagai basisnya, disebut signifikansi eksplisit. Dalam hal ini, titik biner diambil lima tempat ke kiri untuk mendapatkan “1”. Jangan bingung antara titik desimal dan titik biner. Titik biner untuk basis 2, sedangkan titik desimal untuk basis 10. Angka “1”. diikuti dengan 00100011 di sisi kanan simbol =, tanpa basis 2, membentuk signifikansi sebenarnya. Namun, 1,00100011 disebut signifikansi implisit.

Setelah signifikansi di sisi kanan adalah “x 2 +5 ” ekspresi. Dengan ungkapan ini, +5 disebut eksponen. Tanda plus artinya titik biner harus dimajukan lima tempat agar berada pada posisi normal semula dan 2 sebagai dasar penomorannya. Persamaan sebelumnya dapat ditulis terbalik menjadi:

1.00100011 2 x 2 +5 = 100100.011 2

Dengan representasi floating point 32-bit, nilainya adalah “1.00100011 2 x 2 +5 ” yang digunakan dan bukan hanya “100100.011 2 ”. Angka 2 untuk pangkalan tidak dicatat. Representasi floating point 32-bit untuk “1.00100011 2 x 2 +5 ” angkanya, yaitu sebesar 36.375 10 = 100100.011 2 , ditampilkan pada tabel berikut:

Terdapat posisi 32-bit yang diberi nomor dari ujung kanan, dimulai dari 0. Bit pertama di ujung kiri adalah bit tanda. Jika angkanya positif, bit ini adalah 0. Jika angkanya negatif, bit ini adalah 1 (-1 terdiri dari dua karakter dan tidak dapat dimasukkan ke dalam satu sel mana pun). 1.00100011 2 x 2 +5 yaitu sebesar 36,375 10 yang juga sama dengan 100100.011 2 adalah bilangan positif. Jadi, bit pertama adalah 0.

Ada delapan posisi bit untuk eksponen, mulai dari posisi 30 hingga posisi 23, secara inklusif. Namun eksponen yang tertulis disana adalah 10000100 2 yang sama dengan 132 10 . Pangkat bilangan bunga sebenarnya adalah +5 dari basis dua. Jadi, apa yang terjadi?

Sekarang, dalam format 32-bit, eksponen 0 ditulis sebagai 01111111 2 yang sama dengan 127 10 . +5 10 adalah +101 2 . Jadi, sampai pada 10000100 2 di bagian eksponen pada tabel, 101 2 telah ditambahkan ke 01111111 2 , dengan demikian. Artinya 5 ditambah 127 menjadi 132 10 .

Signifikansinya, tanpa “1.”, menurunkan posisi 22 menjadi 15, secara inklusif. Perhatikan bahwa 1 dari “1.” belum ditunjukkan dalam string 32-bit. Hal ini tidak pernah ditunjukkan – terimalah itu. Sel-sel lainnya hingga posisi 0 diisi dengan angka nol.

Jika eksponen sebenarnya adalah -5, maka 5 dikurangkan dari 127 10 untuk memiliki 122 10 . Ini sama dengan mengurangkan 101 2 dari 01111111 2 untuk memiliki 01111010 2 .

Dengan semua ilustrasi sebelumnya, angka +1 sama dengan 1,0 x 2 0 = 1,0 x 1 = 1,0 direpresentasikan sebagai:

Perhatikan bahwa “1.” sebesar 1,0 x 2 0 tidak ditunjukkan dalam format. Hal ini tidak pernah ditunjukkan. Pecahan campuran berikutnya yang bernilai positif setelah 1,0 adalah:

Perhatikan angka 1 di ujung kanan. Representasi ini adalah angka:

Perbedaan antara 1.0000001192092896 dan 1.0 adalah:

1,0000001192092896 – 1,0 = 0,0000001192092896

Angka-angka dengan bagian desimal adalah pecahan campuran. Tidak semua pecahan antara 1 10 dan 2 10 dapat direpresentasikan di komputer. Dapat diasumsikan bahwa celah pecahan terkecil antara bilangan campuran berurutan dengan format floating point 32-bit adalah 0,0000001192092896. Harapkan interval presisi ganda menjadi lebih kecil. Lihat ilustrasi berikut.

Mewakili angka, 0,0 tidak mengikuti argumen sebelumnya. Representasi untuk 0,0 dideklarasikan dan harus dipelajari seperti itu. Untuk mewakili 0,0, semua sel untuk signifikansi adalah 0 dan semua sel untuk eksponen juga nol. Bit tandanya bisa 0 atau 1. Sayangnya, hal ini menimbulkan positif 0 dan negatif 0 sebagai berikut:

Dalam kehidupan nyata, hanya ada satu angka nol. Positif 0 dan negatif 0 tidak ada. Namun, 0 biasanya dianggap positif. Positif 0 dan negatif 0 ada di sini karena deskripsi format khusus ini. Garis bilangan (lihat di atas) juga dapat memiliki +0 dan -0, tetapi hanya ada satu angka nol.

Format Angka Titik Mengambang 64-Bit
Format floating point 64-bit mirip dengan format 32-bit, namun dengan perbedaan sebagai berikut:

  • Ada 64 bit untuk mewakili suatu angka.
  • Setelah bit tanda, terdapat 11 bit untuk bilangan eksponen.
  • Angka eksponen untuk indeks nol (2 0 ) adalah 1023 10 = 01111111111 2 .
  • Sebelas bit diikuti oleh 52 bit untuk signifikansi eksplisit.
  • Ini memiliki rentang angka yang lebih luas daripada format 32-bit.

Perhatikan bahwa “1.” yang pada awal signifikansinya masih belum termasuk dalam 64 bit, sama seperti tidak termasuk dalam 32 bit untuk format 32-bit.

Salah satu perbedaan terpenting antara format 64-bit dan format 32-bit adalah perbedaan antara pecahan campuran berurutan dalam format 64-bit lebih kecil dibandingkan dengan format 32-bit.

Dalam format 64-bit, interval (celah) antara 1,0 dan pecahan campuran berikutnya dapat dihitung sebagai berikut:

1.0 adalah

0 0 01111111111 00000000000000000000 00000000000 0000000000000000000000 2

Ini setara dengan “1.”, yang belum ditunjukkan dalam string, dikalikan dengan 2 dipangkatkan (indeks) 0 (dengan eksponen 1023 10 = 01111111111 2 untuk 2 0 = 1). Talinya berukuran 1,0 x 2 0 .

Pecahan campuran berikutnya yang lebih besar dari 1,0 adalah:

0 0 01111111111 00000000000000000000 00000000000 000000000000000000001 2

Ini setara dengan “1.” yang tidak ditunjukkan dalam string, diikuti dengan 51 angka nol, lalu 1, dikalikan 2 dipangkatkan 0 (dengan eksponen 1023 10 = 011111111112 2 untuk 2 0 = 1). Ini sama dengan:

+2 0 × (1 + 2− -52 ) ≈ 1.0000000000000002

≈ artinya kira-kira sama dengan.

Sekarang:

1,00000000000000002 – 1,0 ≈ 0,0000000000000002

Nilai interval yang sesuai untuk format 32-bit adalah 0,0000001192092896 ≈ 0,00000012.

0,0000000000000002 jauh lebih kecil dari 0,00000012. Jadi, terdapat jauh lebih banyak pecahan campuran antara dua bilangan bulat berurutan (misalnya 3 dan 4) dalam format 64-bit dibandingkan jumlah pecahan antara dua bilangan bulat berurutan untuk format 32-bit.

Banyaknya pecahan campuran antara dua bilangan bulat berurutan pada garis bilangan tidak terhingga. Jadi, tidak ada format (misalnya 32-bit atau 64-bit) yang dapat menyediakan semua pecahan campuran antara dua bilangan bulat berurutan (bilangan bulat). Semakin kecil jarak (interval) antara dua bilangan bulat berurutan yang disediakan oleh suatu format (misalnya 32-bit atau 64-bit), semakin besar jumlah pecahan campuran antara bilangan bulat berurutan (untuk garis bilangan).

Alasan mengapa format 64-bit digambarkan sebagai presisi ganda atau lebih tinggi, dibandingkan dengan format 32-bit, adalah karena interval antara dua pecahan campuran berurutan yang dibatasi oleh dua bilangan bulat berurutan untuk format 64-bit lebih kecil daripada 32 yang sesuai. interval format -bit. Selain itu, terdapat lebih banyak kemungkinan pecahan campuran antara dua bilangan bulat berbatas untuk format 64-bit dibandingkan dengan format 32-bit.

Mengubah Bagian Desimal (Pecahan) Bilangan Desimal menjadi Bagian Biner
36.375 adalah angka desimal dengan bagian desimal “0,375”. Bagian desimal dari “0,375” adalah pecahan antara nol dan satu. Nilai 0,5 pada basis sepuluh sama nilainya dengan 1/2 pada basis dua. 0,5 10 yang dinyatakan dengan pemuaian basis dua adalah:

Ini bukan 0,101 2 yang berarti 0,625 10 . Bagian desimal suatu bilangan desimal mempunyai bagian biner ekuivalennya untuk bilangan biner yang bersangkutan. Jadi, untuk mengkonversi bilangan desimal seperti 36.375 10 ke basis dua, konversikan 36 ke biner lalu konversikan 0,375 juga ke biner. Kemudian, gabungkan kedua hasil dengan titik biner. Metode untuk mengonversi kedua bagian tersebut berbeda. Cara mengubah bilangan bulat desimal ke basis 2 dijelaskan pada bab 1.

Untuk mengubah pecahan desimal menjadi pecahan biner, ikuti langkah-langkah berikut:

  • Kalikan pecahan desimal (bagian desimal) dengan 2. Bilangan bulat yang dihasilkan adalah digit biner pertama.
  • Ulangi langkah sebelumnya dengan hasil pecahan desimal untuk mendapatkan digit biner berikutnya.
  • Ulangi terus langkah sebelumnya hingga hasil pecahan desimal menjadi 0,0000—.

Contoh: Konversikan bagian pecahan dari 36.375 10 ke bagian pecahan yang setara di basis dua.

Larutan:

Perhatikan bahwa pada langkah ketiga, 0,500 dikalikan dengan 2 dan bukan 1,500. Pecahan biner yang bersesuaian dibaca pada kolom terakhir dari atas. Jadi, hasil berikut adalah:

.375 10 = 0,011 2

Mengubah Bagian Biner (Pecahan) Bilangan Biner Menjadi Bagian Desimal
Untuk mencapai hal ini, perluas pecahan biner dengan pangkat timbal balik 2.

Contoh: Konversi bagian pecahan dari 100100.011 2 ke bagian pecahan yang setara dalam basis sepuluh.

Larutan:

3.10 Awalan Angka dalam Komputasi

Dalam kehidupan normal, 1 kilo artinya 1000 yang disingkat k (huruf kecil) seperti 1kg. Dalam komputasi, 1 kilo berarti 2 10 = 1024, tetapi disingkat K (huruf besar) seperti pada 1Kbits. Dalam kehidupan normal, 1 mega berarti 1.000.000 yang disingkat M (huruf besar) seperti pada 1Mg. Dalam komputasi, 1 mega berarti 2 dua puluh = 1.048.576 = 2 10 x 2 10 = 1024 x 1024 = 1.048.576 dan masih disingkat M (huruf besar) seperti 1Mbits. Dalam kehidupan normal, 1 giga artinya 1.000.000.000 disingkat G (huruf besar) seperti pada 1Gg. Dalam komputasi, 1 giga berarti 2 30 = 1.073.741.824 = 2 10 x 2 10 x 2 10 = 1024 x 1024 x 1024 = 1,073,741,824 dan masih disingkat G (huruf besar) seperti pada 1Gbits. Tabel berikut memberikan arti empat awalan dalam kehidupan normal dan komputasi:

3.11 Masalah

Pembaca disarankan untuk menyelesaikan semua permasalahan dalam satu bab sebelum melanjutkan ke bab berikutnya.

  1. Gambarlah garis bilangan dengan bilangan bulat dari -10 hingga +10.
  2. Tambahkan bilangan biner berikut dalam komplemen dua 8-bit: 101010 2 dan 1111 2 .
  3. Gunakan hanya pendekatan komplemen keduanya dalam 8-bit untuk mengurangi bilangan biner 1111 2 dari bilangan biner 101010 2 .
  4. Temukan produk dari 10110 2 x 1101 2 di basis dua.
  5. Bagilah 36.375 10 sebanyak 1000 10 dalam desimal dan biner, dan bandingkan hasilnya.
  6. Gunakan 8-bit pilihan Anda untuk mengilustrasikan logika AND, OR, XOR, Invert, Shift Right, Shift Left, Rotate Right, dan Rotate Left. Setiap byte harus memiliki campuran 1 dan 0.
  7. a) Tuliskan kode numerik karakter ASCII nol dalam heksadesimal, biner, dan desimal.
    b) Tuliskan kode numerik karakter ASCII “1” dalam heksadesimal, biner, dan desimal.
    c) Tuliskan kode numerik karakter ASCII “A” dalam heksadesimal, biner, dan desimal.
    d) Tuliskan kode numerik karakter ASCII “a” dalam heksadesimal, biner, dan desimal.
  8. Konversi 49,49 10 menjadi basis dua. Konversikan hasil Anda ke dalam format floating point IEEE 32-bit.
  9. a) Apa perbedaan format floating point IEEE 64-bit dengan format 32-bit?
    b) Berikan dua alasan terkait mengapa format 64-bit digambarkan memiliki presisi ganda atau lebih tinggi
    format 32-bit.