Bab 3: Operasi Nombor Perduaan dalam Mikropemproses

Bab 3 Operasi Nombor Perduaan Dalam Mikropemproses



Bab 3: Operasi Nombor Perduaan dalam Mikropemproses

3.1 Pengenalan

Dalam komputer, operasi aritmetik dilakukan dalam 8 bit, 16 bit, 32 bit atau 64 bit. Nombor seperti 3 dalam binari ialah 11. Jika operasi hendak dilakukan dalam 8 bit, ini dianggap sebagai 00000011; mendahuluinya dengan 0 sifar.







Untuk nombor binari seperti 10000101, bit yang paling ketara ialah bit di sebelah kiri yang melampau. Ia adalah 1 dalam kes ini. Bit paling tidak ketara ialah bit ekstrem di sebelah kanan, iaitu masih 1, untuk nombor tersebut. Bit yang paling ketara disingkatkan sebagai MSB. Bit yang paling tidak ketara disingkatkan sebagai LSB.



DigiT BInary disingkatkan sebagai BIT dan hanya ditulis sebagai bit. Dalam nombor 10010011, setiap satu atau sifar adalah sedikit. Sekumpulan empat bit dipanggil nibble. Kumpulan lapan bit dipanggil bait. Satu bait terdiri daripada dua gigitan. Nibble yang lebih rendah ialah nibble untuk LSB dan nibble yang lebih tinggi ialah nibble untuk MSB.



Sekumpulan 8 bit, 16 bit, 32 bit atau 64 bit dipanggil perkataan, selagi kumpulan itu menyampaikan maklumat di luar hanya menunjukkan nombor. Kumpulan itu dipanggil perkataan, sebagai contoh, jika ia adalah arahan peringkat rendah dalam komputer. Terdapat juga perkataan 24 bit, tetapi itu tidak biasa digunakan hari ini.





Endianness merujuk kepada susunan di mana bait membentuk perkataan. Pertimbangkan perkataan 24-bit – 100100001111010100100010. Perkataan ini terdiri daripada tiga bait iaitu:

10010000 11110101 00100010



Bait yang paling ketara ialah bait paling kiri. Apabila bait di sebelah kiri melampau ialah bait yang paling ketara dan bait di sebelah kanan melampau ialah bait paling tidak ketara, ini dirujuk sebagai perwakilan Big Endian bagi perkataan itu. Perwakilan Little Endian adalah sebaliknya.

Memori komputer ialah satu siri sel, dan setiap sel memegang satu bait. Sel pertama dalam memori komputer adalah untuk bait 0, yang kedua adalah untuk bait 1, yang ketiga adalah untuk bait 2, dan seterusnya. Dengan endian yang besar dan untuk perkataan sebelumnya, bait paling ketara disimpan dalam bait 0 sel, bait tengah disimpan dalam bait 1 sel, dan bait paling tidak ketara disimpan dalam bait 2 sel. Ini bermakna terdapat bait yang lebih ketara dalam sel memori yang lebih rendah.

Perkataan 24-bit sebelumnya boleh ditulis dalam susunan terbalik bait seperti berikut:

00100010 11110101 10010000

Kini, bait paling tidak ketara berada di sebelah kiri melampau dan bait paling ketara berada di sebelah kanan melampau. Apabila bait di sebelah kiri melampau ialah bait paling tidak ketara dan bait di sebelah kanan melampau ialah bait paling ketara, ia adalah perwakilan Little Endian bagi perkataan itu. Dengan endian yang sedikit dan untuk perkataan sebelumnya, bait paling tidak ketara disimpan dalam bait 0 sel, bait tengah disimpan dalam bait 1 sel, dan bait paling ketara disimpan dalam bait 2 sel. Ini bermakna terdapat bait yang kurang ketara dalam sel memori yang lebih rendah.

Endianness tidak digunakan untuk bit dalam bait. Ia juga tidak digunakan untuk gigitan dalam bait. Ia hanya digunakan untuk pesanan bait.

Garis Nombor
Nombor tanpa tanda ialah nombor positif. Nombor positif ialah nombor dari sifar naik ke atas. Nombor negatif juga wujud. Nombor positif dan negatif boleh dibentangkan pada garis nombor. Garis nombor berikut menunjukkan nombor bulat positif dan negatif (integer) berhampiran sifar:

Nombor negatif berkurangan daripada sifar ke bawah (ke kiri). Dalam banyak situasi, sifar dianggap sebagai positif. Walau bagaimanapun, ia dianggap sebagai negatif dalam beberapa keadaan. Itulah sebabnya terdapat tanda tambah dan tolak di hadapan sifar, dalam penomboran yang lebih rendah, dalam rajah. Apabila nombor adalah positif, tandanya boleh ditinggalkan; ini adalah kes untuk penomboran atas dalam rajah. Tanda tolak di hadapan nombor negatif tidak pernah ditinggalkan.

3.2 Penambahan Nombor Perduaan

Sebagai tambahan:

A + B = S

A dipanggil augend, B dipanggil addend, dan S dipanggil jumlah.

Pertimbangkan penambahan dua nombor positif berikut dalam asas dua:

Dalam asas dua, satu-satunya digit yang mungkin ialah 0 dan 1. Penambahan dalam asas 2 adalah serupa dengan penambahan dalam asas sepuluh, tetapi dua dalam asas dua ialah satu-sifar (10). Apabila jumlah dua bit dalam lajur ialah 10, 0 ditulis dan 1 dibawa ke lajur kiri serta-merta; untuk ditambah kepada jumlah dua bit di sana. Apabila jumlah keseluruhan ialah tiga, ia bermakna 11 dalam asas dua. 1 kanan dalam 11 ditulis dan 1 kiri dibawa untuk ditambah kepada jumlah bit lajur kiri serta-merta. Dalam kedua-dua kes, 1 dibawa ke kiri dipanggil pembawa.

Membaca jadual penambahan sebelumnya dari kanan, dalam lajur kedua (dari kanan), terdapat pembawa yang terhasil daripada 1+1 = 10. Dalam lajur ketiga, terdapat pembawa yang terhasil daripada pembawaan 1+1+ daripada 1 = 11. Dalam lajur keempat, terdapat bawa yang terhasil daripada 0+1+ bawa 1 = 10. Dalam lajur kelima, tiada bawa kerana penjumlahan ialah 0+0+ bawa 1 = 1. selebihnya lajur tidak melibatkan pembawaan.

Pengiraan lajur bermula dari hujung kanan. Dengan tambahan 16-bit, boleh ada bawa dari lajur kelapan ke lajur kesembilan (bergerak ke kiri). Jadual berikut menggambarkan ini:

Operasi aritmetik dan logik berlaku dalam mikropemproses pada papan induk komputer.

Untuk komputer perkataan 8-bit, pembawa tidak boleh pergi dari bit kelapan ke bit kesembilan secara automatik oleh perkakasan. Jadi, untuk menambah dua kumpulan 16-bit dalam komputer sedemikian, penambahan itu perlu dilakukan dua kali dalam lapan-lapan pasangan bit. Bawaan digerakkan dan dilaksanakan oleh perisian (pengaturcaraan).

Untuk menambah dua nombor, nombor boleh ditukar dahulu kepada bentuk pelengkap dua nombor tersebut (lihat di bawah) sebelum menambah.

3.3 Pelengkap Dua dan Penolakan Nombor Perduaan

Pada papan induk komputer, terdapat memori dan terdapat mikropemproses dan litar lain. Memori adalah satu siri sel lapan bit. Untuk bait, setiap bit masuk ke dalam sel. Mikropemproses mempunyai beberapa lokasi jenis memori. Lokasi jenis memori ini dipanggil daftar. Jadi, dalam komputer, kumpulan bait boleh disimpan sementara dalam ingatan atau dalam daftar mikropemproses.

Dalam mana-mana storan ini, setiap sel boleh mengambil sama ada 1 atau 0, dan tiada yang lain. Dalam kehidupan, terdapat nombor positif dan negatif. Nombor positif bermula dengan tanda tambah (+) dan nombor negatif bermula dengan tanda negatif (-). Apabila tanda itu ditinggalkan, nombor itu dianggap sebagai nombor positif.

Untuk menyelesaikan masalah ini menunjukkan tanda nombor dalam komputer, nombor keseluruhan disimpan dalam julat. Nombor bulat ialah integer. Jika lapan bit digunakan untuk menyimpan julat nombor yang mungkin, bit paling kiri digunakan sebagai bit tanda. Jika nombor bermula dengan 0, nombor itu adalah nombor positif. Jika ia bermula dengan 1, nombor itu ialah nombor negatif. Jika enam belas bit digunakan untuk menyimpan julat nombor yang mungkin, bit paling kiri digunakan sebagai bit tanda. Jika nombor itu bermula dengan 0, t nombor itu ialah nombor positif. Jika ia bermula dengan 1, nombor itu ialah nombor negatif. Nombor dalam borang ini dipanggil nombor bertanda.

Dalam amalan, terdapat nombor yang ditandatangani untuk 8 bit, 16 bit, 32 bit dan 64 bit. Lebih luas bilangan bit digunakan, lebih besar julat nombor yang mungkin boleh disimpan.

Nombor Bulat Pelengkap Dua
Dengan pelengkap dua, nombor positif ialah nombor pengiraan biasa, kecuali digit paling kiri ialah 0. Untuk mendapatkan nombor negatif yang sepadan bagi mana-mana nombor positif yang diberikan, songsang setiap bit dalam nombor itu dan tambah 1 pada hasilnya. Invert atau pelengkap bagi 0 ialah 1. Songsangkan atau pelengkap bagi 1 ialah 0. Jadual berikut menunjukkan beberapa nombor pelengkap dua dalam julatnya:

Jadual 3.31
Integer Pelengkap Dua dalam Dua Bit
binari perpuluhan
01 +1
00 +0
sebelas -1
10 -2

Nombor perduaan positif ialah 00 dan 01 (iaitu sifar dan satu). Dalam bit paling kiri, sifar menunjukkan bahawa ia adalah nombor positif. 00 agak berada di tengah-tengah julat. Untuk mendapatkan -1, songsangan bagi nombor 01 didapati 10. Menambah 1 pada ini (di hujung kanan) memberikan 11.

Oleh kerana dua bit digunakan, hanya satu bit yang tinggal untuk mewakili nombor dalam julat yang terdiri daripada nombor +1, +0, dan -1 sepadan dengan 01, 00, dan 11. Bit pertama menunjukkan tanda. Ia berlaku bahawa 10 untuk +2 bukan antara tiga nombor binari ini. 10 bermula dengan 1 yang bermaksud bahawa ia mestilah nombor negatif dalam pelengkap dua. Jadi, 10 termasuk dalam julat, bermakna -2.

Dengan dua bit dalam pelengkap dua, bilangan semua integer (positif dan negatif) yang boleh diwakili ialah 2 2 = 4 dan bukan 2 2 -1 = 3. Nuansa terhasil daripada kemasukan nombor negatif terakhir iaitu negatif 2 nombor dengan – 1. Dalam kes ini, -2 2-1 = -2 1 = -2. Tiada +2 dalam julat dua nombor pelengkap dalam 2 bit.

Jadual 3.32
Integer Pelengkap Dua dalam Empat Bit
binari perpuluhan
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

Nombor perduaan positif adalah dari 0000 hingga 0111 (iaitu dari sifar hingga tujuh). Dalam bit paling kiri, sifar menunjukkan bahawa ia adalah nombor positif. 0000 agak berada di tengah-tengah julat. Untuk mendapatkan -1, penyongsangan bagi nombor 0001 didapati 1110. Menambah 1 pada ini (di hujung kanan) memberikan 1111. Untuk mendapatkan -2, songsangan bagi 0010 didapati 1101. Menambah 1 pada ini ( dari hujung kanan) memberikan 1110. Nombor perduaan negatif lain seperti -3 hingga -7 ditentukan sama.

Oleh kerana empat bit digunakan, tiga bit dibiarkan untuk mewakili nombor dalam julat iaitu +7, +6, +5, +4, +3, +2, +1, +0, -1, -2, - 3, -4, -5, -6 dan -7 sepadan dengan 0111, 0110, 0101, 0100, 0011, 0010, 0001, 0000, 1111, 1110, 1101, 1100, 10101, dan 1.

-8 yang sepadan dengan 1000 perlu ditangani secara berasingan. Bit pertama untuk semua nombor ini menunjukkan tanda 0 untuk nombor positif dan 1 untuk nombor negatif. Ia berlaku bahawa 1000 bukan antara empat belas nombor binari ini. 1000 bermula dengan 1 yang bermaksud bahawa ia mestilah nombor negatif, setakat pelengkap dua berkenaan. Jadi, 1000 termasuk dalam julat, bermakna -8.

Dengan empat bit dalam pelengkap dua, bilangan semua integer (positif dan negatif) yang boleh diwakili ialah 2 4 = 16 dan bukan 2 4 – 1 = 15. Nuansa terhasil daripada kemasukan nombor negatif terakhir iaitu negatif 2 nomborLebar – 1. Dalam kes ini, -2 4 -1 = -2 3 = -8. Tiada +8 dalam julat nombor.

Analisis sebelumnya untuk dua, empat dan bit yang lebih luas dalam pelengkap dua boleh digunakan pada 8 bit, 16 bit, 32 bit dan 64 bit nombor perduaan lebar.

Pelengkap Two mengorbankan bit pertama (paling kiri) untuk tanda 0 untuk nombor positif dan 1 untuk nombor negatif. Untuk kumpulan bit lebar bit 'n', terdapat 2 n jumlah positif tambah nombor negatif. Ia akan menjadi 2 n -1, jika bukan kerana nombor negatif terakhir (paling kecil) yang bertuah dimasukkan. Nombor positif tertinggi ialah +2 n-1 -1 dan nombor negatif terkecil ialah -2 n-1 -1. Ia akan menjadi -2 n-1 -1, kalau bukan kerana yang bertuah -2 n-1 disertakan.

Menolak Nombor dalam Pelengkap Dua
Dalam penolakan:

A – B = D

A dipanggil minuend, B dipanggil subtrahend, dan D dipanggil perbezaan.

Untuk menolak satu nombor perduaan positif daripada nombor perduaan positif yang lain, minuend ditulis dalam pelengkap dua dan subtrahend ditukar kepada nilai pelengkap dua negatifnya. Jadi, pernyataan matematik menjadi:

A+ – B = D

Dalam erti kata lain, dalam penolakan pelengkap dua, subtrahend ditukar kepada nombor negatif dan kemudian ditambah kepada minuend.

Contoh 3.31:
Nilaikan ungkapan perpuluhan berikut dalam pelengkap dua menggunakan empat bit:

6 – 4

Penyelesaian:
Nombor binari untuk 6 ialah 110. Dalam pelengkap dua 4-bit, ia adalah 0110. Nombor perduaan untuk +4 ialah 100. Dalam pelengkap dua 4-bit, ia adalah 0100. 0100 yang perlu ditukar kepada negatif 4 dalam dua pelengkap seperti berikut: Pelengkap atau penyongsangan 0100 ialah 1011. Menambah 1 pada ini dari hujung kanan, seperti yang kita lakukan sebagai tambahan, memberikan 1100. Jadi, ungkapan perpuluhan ialah:

6 – 4 yang menjadi:

0110 – 0100 iaitu

0110 +(– 0100) = 0110 + 1100 dilakukan seperti dalam bahagian penambahan sebelumnya sebagai:

Nota: 0110 +(– 0100) adalah sama dengan 6 + – 4

Dengan penolakan pelengkap dua, sebarang pembawaan, selepas lajur terakhir ke kiri, dalam tambahan, dibuang. Apabila menolak dalam perpuluhan, pernyataan matematik ialah:

6 – 4 = 2

Melakukan perkara yang sama dalam pelengkap dua, jawapannya ialah 0010 iaitu +2 dalam pengiraan binari pelengkap dua. Penolakan sebelumnya menolak nombor yang lebih kecil daripada nombor yang lebih besar. Dalam contoh berikut, nombor yang lebih besar ditolak daripada nombor yang lebih kecil. Jadual 3.32 boleh dirujuk untuk melihat sama ada 0010 benar-benar pelengkap dua yang bersamaan dengan +2.

Contoh 3.32:
Nilaikan ungkapan perpuluhan berikut dalam pelengkap dua dengan empat bit:

4 – 6

Penyelesaian:
Nombor perduaan untuk 4 ialah 100. Dalam pelengkap dua 4-bit, ia adalah 0100. Nombor perduaan untuk +6 ialah 110. Dalam pelengkap dua 4-bit, ia adalah 0110. 0110 perlu ditukar kepada pelengkap 6 dalam dua negatif seperti berikut: Pelengkap atau penyongsangan 0110 ialah 1001. Menambah 1 pada ini dari hujung kanan, seperti yang kita lakukan dalam penambahan sebelumnya, memberikan 1010. Jadi, ungkapan perpuluhan ialah:

4 – 6 yang menjadi:

0100 – 0110 iaitu

0100 +(– 0110) = 0100 + 1010 dilakukan seperti dalam bahagian penambahan sebelumnya sebagai:

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

Dengan penolakan pelengkap dua, sebarang pembawaan, selepas lajur terakhir ke kiri, dalam tambahan, dibuang. Apabila menolak dalam perpuluhan, pernyataan matematik ialah:

4 – 6 = -2

Melakukan perkara yang sama dalam pelengkap dua, jawapannya ialah 1110 iaitu -2 dalam pengiraan binari pelengkap dua. Jadual 3.32 boleh dirujuk untuk melihat sama ada 1110 benar-benar pelengkap dua yang bersamaan dengan -2.

3.4 Pendaraban Nombor Perduaan

Dalam kenyataan:

A x B = P

A dipanggil darab, B dipanggil darab, dan P dipanggil hasil darab. Ungkapan A x B bermaksud menambah bilangan A, B apabila A dan B ialah integer (nombor bulat).

Pendaraban dalam binari adalah sama dengan pendaraban dalam perpuluhan. Walau bagaimanapun, daripada melakukannya dalam perpuluhan, ia dilakukan dalam binari. Pendaraban ungkapan perpuluhan 42 x 10 dilakukan dalam binari seperti berikut di mana 42 10 = 101010 2 dan 10 10 = 1010 2 :

4 nombor yang ditambah dipanggil sebagai hasil separa. Jawapannya ialah produk. Penambahan produk separa dilakukan dengan cara yang sama seperti yang dijelaskan sebelum ini.

Penggandaan juga boleh dilihat seperti berikut: Dalam pendaraban asas dua ini, jika bit (digit) dalam pengganda ialah 1, bit yang paling kurang ketara bagi hasil separanya ialah bit yang paling kurang ketara bagi darab yang ditaip semula terus di bawahnya; dan selebihnya bit darab diulang ke kiri. Dalam pendaraban asas dua ini, jika bit (digit) dalam pengganda ialah 0, hasil darab separanya terdiri daripada 0 dengan bit paling ketara 0 terus di bawahnya. Nombor semua sifar ialah bilangan bit dalam pendaraban.

3.5 Pembahagian Nombor Perduaan

Dalam kenyataan:

A ÷ B = Q

A dipanggil Dividen, B dipanggil Divisor, dan P dipanggil Penyebutharga. Hasil bagi mungkin disertakan dengan baki. Ungkapan A ÷ B bermaksud berapa kali B boleh ditambah untuk memberikan A atau hampir dengannya supaya bakinya adalah 0 atau kurang daripada B.

Pembahagian boleh dilakukan dalam pelbagai cara. Bahagian yang ditunjukkan di sini ialah bahagian pemulihan.

Bahagian Pemulihan
Inilah kaedah pembahagian panjang yang dipelajari di sekolah. Jika 237 dibahagi dengan 6, jawapannya ialah 39 baki 3. 237 10 dalam asas 2 ialah 11101101 2 dan 6 10 dalam asas 2 ialah 110 2 . Yang 39 10 dalam asas 2 ialah 100111 2 dan 3 10 dalam asas 2 ialah 11 2 .

Jadi, 11101101 2 dibahagikan dengan 110 2 memberikan 100111 2 baki 11 2 dalam asas dua. Dengan kaedah pemulihan, nombor binari adalah nombor biasa dan ia tidak semestinya dalam pelengkap dua. Struktur berikut membahagikan 11101101 2 menjelang 110 2 untuk memberi 100111 2 baki 11 2 :

Penolakan dilakukan secara lazim dan bukan dengan menggunakan pelengkap kedua-duanya. Oleh kerana ini adalah asas dua, pinjaman ialah dua dan bukan sepuluh. Dividen separa ialah 10, 101, 1011, 1010, dan 1001. 11 ialah bakinya. Oleh kerana pembahagi mempunyai tiga digit, pembahagian dilakukan pada asasnya dalam kumpulan tiga digit daripada dividen yang diberikan. Hasil bagi ialah nombor bulat (integer), dan ia adalah 100111 untuk masalah ini. Hasil bagi hasil dan baki adalah seperti yang dijangkakan.

3.6 Operasi Aritmetik dengan Perisian dan Perkakasan

Papan induk komputer mempunyai jam. Detik jam dipanggil denyutan. Pada setiap nadi jam, satu atau lebih keputusan diambil di tempat yang berbeza pada papan induk; dan itu adalah berkaitan dengan pengaturcaraan (perisian).

Di dalam mikropemproses, terdapat dua jenis litar yang dipanggil: Litar Logik Gabungan dan Litar Logik Berjujukan. Terdapat satu lagi jenis litar yang dipanggil pemultipleks. Penambahan, pendaraban, dan pembahagian boleh berlaku dalam satu selang jam menggunakan logik gabungan (litar). Manakala pengaturcaraan (perisian) melakukan keputusan pada setiap nadi jam menggunakan litar logik berjujukan dan pemultipleks.

Apabila penolakan dilakukan menggunakan pelengkap dua, sekurang-kurangnya dua denyutan jam diperlukan. Pada nadi jam pertama, pemultipleks menyalurkan subtrahend ke set get NOT (satu get NOT setiap digit). Pada nadi jam kedua, logik gabungan menambah 1 pada output get NOT dan terus menambah subtrahend dan minuend yang terhasil. Semua penambahan itu boleh berlaku dalam selang satu jam.

Penambahan, pendaraban dan pembahagian masih boleh diturunkan dengan pengaturcaraan menggunakan jadual kebenaran. Walau bagaimanapun, ia tidak diliputi dalam kursus kerjaya dalam talian ini.

3.7 Operasi Logik dalam Mikropemproses

DAN, ATAU, XOR dan Songsang

DAN
Jadual berikut menggambarkan Bitwise AND. Ini bermakna bahawa untuk dua nombor perduaan yang berbeza, bit yang sepadan adalah AND berdasarkan jadual 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 mengikut Jadual DAN Kebenaran.

ATAU
Jadual berikut menggambarkan Bitwise OR. Ini bermakna bahawa untuk dua nombor binari yang berbeza, bit yang sepadan adalah ORed berdasarkan jadual OR Truth:

Bergerak dari kiri ke kanan, 1 ATAU 1 = 1; 0 ATAU 1 = 1; 0 ATAU 0 = 0; 1 ATAU 0 = 1; dan seterusnya mengikut Jadual Kebenaran ATAU.

PERCUMA
Jadual berikut menggambarkan Bitwise eksklusif-ATAU. Ini bermakna bahawa untuk dua nombor binari yang berbeza, bit yang sepadan adalah XORed berdasarkan jadual 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 mengikut Jadual Kebenaran XOR.

Songsang (BUKAN)
Jadual berikut menggambarkan Bitwise NOT (invert). Ini bermakna bahawa untuk satu nombor binari, kali ini, setiap bit diterbalikkan berdasarkan Jadual NOT Truth:

Bergerak dari kiri ke kanan, BUKAN 1 = 0; BUKAN 0 = 1; BUKAN 0 = 1; BUKAN 1 = 0; dan seterusnya mengikut Jadual NOT Truth.

Beralih ke Kanan atau Kiri

Shift Kanan
Nombor binari berikut dianjakkan 3 kedudukan bit ke kanan, dengan sifar dimasukkan ke dalam kedudukan bit yang kosong di sebelah kiri:

Peralihan boleh dilakukan untuk satu, dua, tiga, empat, dan lain-lain tempat.

Beralih ke Kiri
Nombor binari berikut dianjakkan 3 kedudukan bit ke kiri, dengan sifar dimasukkan ke dalam kedudukan bit yang kosong di sebelah kanan:

Peralihan boleh dilakukan untuk satu, dua, tiga, empat, dan lain-lain tempat.

Berpusing Kanan atau Kiri

Berputar adalah serupa dengan beralih. Ia dilakukan sedikit demi sedikit. Apabila berputar ke kanan, bit yang meninggalkan hujung kanan tidak jatuh seperti dalam peralihan; mereka menggantikan bit yang kosong di sebelah kiri, satu demi satu. Apabila berputar ke kiri, bit yang meninggalkan hujung kiri tidak jatuh seperti dalam peralihan; mereka menggantikan bit yang kosong di sebelah kanan, satu demi satu.

Putar Kanan
Nombor binari berikut diputarkan 3 kedudukan bit ke kanan:

Putaran boleh dilakukan untuk satu, dua, tiga, empat, dsb.

Rorate Kiri
Nombor binari berikut diputar 3 kedudukan bit ke kiri:

Putaran boleh dilakukan untuk satu, dua, tiga, empat, dsb.

3.8 Set Aksara ASCII dan Nilai Kodnya

ASCII bermaksud 'Kod Standard Amerika (U.S.A) untuk Pertukaran Maklumat'. Bayangkan papan kekunci dengan 96 kekunci. Ini ialah papan kekunci yang ideal di mana kekunci huruf besar berbeza daripada kekunci huruf kecil. Setiap kekunci lain mewakili aksara yang terdapat pada papan kekunci bahasa Inggeris (U.S.A). Aksara dan kod (nombor yang sepadan untuk aksara) disenaraikan dalam yang berikut:

Dalam jadual ini, 32 aksara pertama (termasuk aksara dengan 00 16 = 0 10 kod) ialah aksara bukan cetakan. Mereka adalah watak kawalan. Mereka tidak dilihat pada skrin (monitor) di mana segala-galanya adalah sama. Mereka hanya mempunyai kesan. Mari kita bincangkan lebih lanjut mengenainya kemudian.

Selebihnya aksara adalah mencetak aksara; mereka dilihat pada skrin. Terdapat 128 aksara ASCII. 2 7 = 128. 1,111,111 2 = 127 10 . 7 dalam 2 7 bermakna 7 bit.

Sekarang, 1111111 2 + 1 2 adalah sama seperti:

Di sini, 10,000,000 2 = 128 10 . Terdapat 128 10 aksara dalam senarai sebelumnya (jadual) aksara ASCII. Ini termasuk aksara nol, yang kodnya dalam asas enam belas (heksadesimal) ialah 00, yang bersamaan dengan 0 dalam asas sepuluh.

Oleh kerana jumlahnya terdapat 128 aksara, 128 tolak 32 aksara bukan cetakan memberikan 96 aksara cetakan. Dalam bahagian ini, diandaikan terdapat papan kekunci yang ideal dengan 96 aksara yang merupakan aksara boleh cetak. Pada papan kekunci yang ideal ini, kekunci untuk aksara Inggeris huruf besar adalah berbeza daripada kekunci aksara Inggeris huruf kecil.

Setiap aksara pada papan kekunci diwakili oleh nombor asas dua 7 bit yang tidak ditunjukkan dalam senarai. Huruf besar 'N', sebagai contoh, diwakili oleh tujuh bit 1001110 dalam asas 2. Untuk menukar 1001110 2 hingga asas 16, awali dengan 0 dan kumpulkan hasilnya dalam subkumpulan empat bit seperti berikut:

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

Iaitu 01001110 2 = 4E 16 . Untuk menukar 4E 16 hingga asas sepuluh, lakukan perkara berikut:

4 x (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” dalam senarai (jadual) ialah nombor perenambelasan 4E dan nombor perpuluhan 78.

Sebagai contoh lain, aksara “[“ diwakili oleh tujuh bit 1011011 dalam asas 2. Untuk menukar 1011011 2 hingga asas 16, awali dengan 0 dan kumpulkan hasilnya dalam subkumpulan empat bit seperti berikut:

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

Iaitu 01011011 2 = 5B 16 . Untuk menukar 5B16 kepada asas sepuluh, lakukan perkara berikut:

5 x (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 senarai (jadual) ialah nombor perenambelasan 5B dan nombor perpuluhan 91.

Sebagai contoh lain, aksara untuk nombor perpuluhan '5' diwakili oleh tujuh bit 0110101 dalam asas 2, dan bukan 0000101 dalam asas 2. Untuk menukar 0110101 2 hingga asas 16, awali dengan 0 dan kumpulkan hasilnya dalam subkumpulan empat bit seperti berikut:

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

Iaitu 00110101 2 = 35 16 . Untuk menukar 3516 kepada asas sepuluh, lakukan perkara berikut:

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

Di sebelah kanan “5” dalam senarai (jadual) ialah nombor perenambelasan 35 dan nombor perpuluhan 53.

Memandangkan komputer berfungsi dalam bait, apabila kekunci pada papan kekunci yang ideal ditekan, lapan bit dihantar ke mikropemproses (papan induk). Papan kekunci yang ideal ialah peranti persisian yang dipisahkan daripada unit sistem (asas) komputer. Ia mempunyai litar elektronik (IC) yang mencipta tujuh bit dan mendahuluinya dengan sifar sebelum menghantarnya melalui kabelnya ke papan induk unit sistem. Dari port input (litar input) papan induk, ia pergi ke mikropemproses yang juga terdapat pada papan induk. Dari mikropemproses, ia pergi ke memori yang juga dipasang pada papan induk.

Jadi, apabila kekunci 'N' pada papan kekunci yang ideal ditekan, lapan bit 01001110 dibawa ke mikropemproses. Dari mikropemproses, mereka dibawa ke memori di mana mereka kekal di lokasi memori sebagai bait. Pengaturcara komputer harus ingat bahawa lapan bit 01001110 2 adalah sama dengan 4E 16 yang sama dengan 78 10 .

Apabila kekunci “[“pada papan kekunci ideal ditekan, lapan bit 01011011 dibawa ke mikropemproses. Dari mikropemproses, mereka dibawa ke memori di mana mereka kekal di lokasi memori sebagai bait. Pengaturcara komputer harus ingat bahawa lapan bit 01011011 2 adalah sama dengan 5B 16 yang sama dengan 91 10 .

Apabila kekunci '5' pada papan kekunci yang ideal ditekan, sebagai aksara dan bukan sebagai nombor perpuluhan, lapan bit 00110101 dibawa ke mikropemproses. Dari mikropemproses, mereka dibawa ke memori di mana mereka kekal di lokasi memori sebagai bait. Pengaturcara komputer harus ingat bahawa lapan bit 00110101 2 adalah sama dengan 35 16 yang sama dengan 5310 10 .

Ada kalanya program sedang berjalan dan menunggu nombor perpuluhan 5 untuk dimasukkan ke dalam komputer. Dalam keadaan ini, jika kekunci '5' pada papan kekunci yang ideal ditekan, kod lapan bit 00110101 masih dibawa ke mikropemproses. Memandangkan apa yang diperlukan ialah nombor perpuluhan 5, dan bukan aksara '5', sekeping kod (program pendek) daripada memori menggunakan mikropemproses untuk menukar kod aksara 00110101 dalam asas dua kepada nombor pelengkap kedua-duanya 00000101 2 sebelum menghantarnya ke lokasi memori sebagai bait pelengkap dua. Pengaturcara komputer perlu ingat bahawa 00000101 bermaksud 5 10 dalam asas 2, dan ia berbeza daripada nombor kod 00110101 2 , 35 16 , dan 53 10 yang bermaksud watak “5”. Untuk memaparkan nombor pelengkap kedua-dua 00000101 dalam ingatan, satu lagi program pendek perlu menukar 00000101 daripada memori kepada 00110101. Ia adalah 00110101 yang sama dengan 35 16 yang sama dengan 53 10 yang dipaparkan pada monitor (atau dicetak pada kertas oleh pencetak).

3.9 Format Nombor Titik Terapung

Nombor tanpa bahagian perpuluhan ialah integer. Nombor 36 ialah integer. 36.375 bukan integer. Ia adalah nombor perpuluhan dengan bahagian perpuluhan. Bahagian perpuluhan .375 ialah pecahan yang kurang daripada 1.

36.375 ditafsirkan dalam bentuk perpuluhan sebagai:

sekarang:

Jadi, 100100 2 = 3610 iaitu bahagian nombor bulat bagi 36.375 10 .

sekarang:

Jadi, 0.011 2 = 0.375 10 yang merupakan bahagian nombor perpuluhan bagi 36.375 10 .

∴ 36,375 10 = 100100.011 2

Letakkannya dengan cara lain:

100100.011 2 = 36,375 10

Nombor diwakili dalam komputer dalam asas 2 dan bukan dalam asas 10, dengan semuanya sama. Memandangkan sel dalam daftar dalam mikropemproses atau sel dalam ingatan hanya boleh mengambil 1 atau 0, tiada ruang untuk menyimpan titik perpuluhan. Ini menimbulkan masalah. Sebagai resolusi, terdapat perwakilan titik terapung 32-bit ketepatan tunggal IEEE-754 dan perwakilan titik terapung 64-bit ketepatan ganda IEEE-754.

Format Nombor Titik Terapung 32-Bit
Nombor 100100.0112 boleh dinyatakan sebagai:

100100.011 2 = 1.00100011 2 x 2 +5

Bahagian kanan simbol = dirujuk dalam matematik sebagai bentuk piawai asas dua bagi bahagian kiri 100100.011 2 .

Sekarang, 00100011 daripada 1.00100011 2 di sebelah kanan simbol =, tanpa “1” sebelumnya. dan tanpa 2 untuk asas, dipanggil significand eksplisit. Dalam kes ini, titik binari diambil lima tempat ke kiri untuk mempunyai '1'. Jangan mengelirukan antara titik perpuluhan dan titik binari. Titik binari adalah untuk asas 2, manakala titik perpuluhan adalah untuk asas 10. '1.' diikuti dengan 00100011 di sebelah kanan simbol =, tanpa 2 untuk asas, membentuk significand sebenar. Walau bagaimanapun, 1.00100011 dipanggil signifikan tersirat.

Selepas tanda signifikan di sebelah kanan ialah “x 2 +5 ” ungkapan. Dengan ungkapan ini, +5 dipanggil eksponen. Tanda tambah bermakna bahawa titik perduaan perlu digerakkan lima tempat ke hadapan untuk berada pada kedudukan asalnya yang normal dan 2 adalah asas untuk penomboran. Persamaan sebelumnya boleh ditulis secara terbalik sebagai:

1.00100011 2 x 2 +5 = 100100.011 2

Dengan perwakilan titik terapung 32-bit, ia adalah '1.00100011 2 x 2 +5 ” yang digunakan dan bukan hanya “100100.011 2 ”. 2 untuk pangkalan tidak direkodkan. Perwakilan titik terapung 32-bit untuk '1.00100011 2 x 2 +5 ” nombor, yang sama dengan 36.375 10 = 100100.011 2 , ditunjukkan dalam jadual berikut:

Terdapat kedudukan 32-bit yang bernombor dari hujung kanan, bermula dari 0. Bit pertama di hujung kiri ialah bit tanda. Jika nombor itu positif, bit ini ialah 0. Jika nombor itu negatif, bit ini ialah 1 (-1 terdiri daripada dua aksara dan tidak boleh dimasukkan ke dalam mana-mana satu sel). 1.00100011 2 x 2 +5 yang bersamaan dengan 36.375 10 yang juga bersamaan dengan 100100.011 2 ialah nombor positif. Jadi, bit pertama ialah 0.

Terdapat lapan kedudukan bit untuk eksponen, bermula dari kedudukan 30 hingga kedudukan 23, secara inklusif. Walau bagaimanapun, eksponen yang ditulis di sana ialah 10000100 2 yang sama dengan 132 10 . Eksponen bilangan minat sebenarnya ialah +5 daripada asas dua. Jadi, apa yang berlaku?

Kini, dalam format 32-bit, eksponen 0 ditulis sebagai 01111111 2 yang sama dengan 127 10 . +5 itu 10 ialah +101 2 . Jadi, apabila tiba di 10000100 2 dalam bahagian eksponen dalam jadual, 101 2 telah ditambah ke 01111111 2 , sepadan. Ini bermakna 5 telah ditambah kepada 127 untuk mempunyai 132 10 .

Yang penting, tanpa '1.', mengambil kedudukan 22 turun kepada 15, secara inklusif. Perhatikan bahawa 1 daripada '1.' belum ditunjukkan dalam rentetan 32-bit. Ia tidak pernah ditunjukkan - terima itu. Selebihnya sel ke kedudukan 0 diisi dengan sifar.

Jika eksponen sebenar ialah -5, maka 5 ditolak daripada 127 10 mempunyai 122 10 . Ini sepadan dengan menolak 101 2 daripada 01111111 2 untuk mempunyai 01111010 2 .

Dengan semua ilustrasi sebelumnya, nombor +1 yang sama dengan 1.0 x 2 0 = 1.0 x 1 = 1.0 diwakili sebagai:

Perhatikan bahawa '1.' daripada 1.0 x 2 0 tidak ditunjukkan dalam format. Ia tidak pernah ditunjukkan. Pecahan campuran seterusnya yang pergi positif selepas 1.0 ialah:

Perhatikan 1 di hujung kanan. Perwakilan ini ialah nombor:

Perbezaan antara 1.0000001192092896 dan 1.0 ialah:

1.0000001192092896 – 1.0 = 0.0000001192092896

Nombor dengan bahagian perpuluhan ialah pecahan bercampur. Bukan semua pecahan antara 1 10 dan 2 10 boleh diwakili dalam komputer. Ia boleh diandaikan bahawa jurang pecahan terkecil antara nombor bercampur berturut-turut dengan format titik terapung 32-bit ialah 0.0000001192092896. Jangkakan selang untuk ketepatan berganda menjadi lebih kecil. Rujuk ilustrasi berikut.

Mewakili nombor, 0.0 tidak mengikut hujah sebelumnya. Perwakilan untuk 0.0 diisytiharkan dan perlu dipelajari sedemikian. Untuk mewakili 0.0, semua sel untuk significand ialah 0 dan semua sel untuk eksponen juga adalah sifar. Bit tanda boleh menjadi 0 atau 1. Malangnya, ini menimbulkan positif 0 dan negatif 0 seperti berikut:

Dalam kehidupan sebenar, hanya ada satu sifar. Positif 0 dan negatif 0 tidak wujud. Walau bagaimanapun, 0 biasanya dianggap sebagai positif. Positif 0 dan negatif 0 wujud di sini kerana perihalan format khusus ini. Garis nombor (lihat di atas) juga boleh mempunyai +0 dan -0, tetapi hanya satu sifar wujud.

Format Nombor Titik Terapung 64-Bit
Format titik terapung 64-bit adalah serupa dengan format 32-bit, tetapi dengan perbezaan berikut:

  • Terdapat 64 bit untuk mewakili nombor.
  • Selepas bit tanda, terdapat 11 bit untuk nombor eksponen.
  • Nombor eksponen untuk indeks sifar (2 0 ) ialah 1023 10 = 01111111111 2 .
  • Sebelas bit diikuti oleh 52 bit untuk kepentingan yang jelas.
  • Ia mempunyai julat nombor yang lebih luas daripada format 32-bit.

Perhatikan bahawa '1.' iaitu pada permulaan significand masih tidak termasuk dalam 64 bit, sama seperti ia tidak termasuk dalam 32 bit untuk format 32-bit.

Salah satu perbezaan yang paling penting antara format 64-bit dan format 32-bit ialah perbezaan antara pecahan campuran berturut-turut dalam format 64-bit adalah lebih kecil daripada format 32-bit.

Dalam format 64-bit, selang (jurang) antara 1.0 dan pecahan campuran seterusnya boleh dikira seperti berikut:

1.0 ialah

0 01111111111 00000000000000000000 00000000000 000000000000000000000 2

Ini bersamaan dengan '1.', yang tidak ditunjukkan dalam rentetan, didarab dengan 2 dinaikkan kepada kuasa (indeks) 0 (dengan eksponen ialah 1023 10 = 01111111111 2 untuk 2 0 = 1). Rentetan ialah 1.0 x 2 0 .

Pecahan campuran seterusnya yang lebih besar daripada 1.0 ialah:

0 01111111111 00000000000000000000 00000000000 00000000000000000001 2

Ini bersamaan dengan '1.' yang tidak ditunjukkan dalam rentetan, diikuti dengan 51 sifar, dan kemudian 1, didarab dengan 2 dinaikkan kepada kuasa 0 (dengan eksponen ialah 1023 10 = 011111111112 2 untuk 2 0 = 1). Ini adalah sama seperti:

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

≈ bermaksud lebih kurang sama dengan.

sekarang:

1.000000000000002 – 1.0 ≈ 0.0000000000000002

Nilai selang yang sepadan untuk format 32-bit ialah 0.0000001192092896 ≈ 0.00000012.

0.000000000000002 adalah lebih kecil daripada 0.00000012. Jadi, terdapat lebih banyak pecahan bercampur antara dua integer berturut-turut (cth. 3 dan 4) dalam format 64-bit daripada terdapat antara dua integer berturut-turut untuk format 32-bit.

Bilangan pecahan bercampur antara dua integer berturut-turut pada garis nombor adalah tidak terhingga. Jadi, tiada format (cth. 32-bit atau 64-bit) boleh menyediakan semua pecahan bercampur antara mana-mana dua integer berturut-turut (nombor bulat). Semakin kecil jurang (selang) antara dua integer berturut-turut yang disediakan oleh format (cth. 32-bit atau 64-bit), semakin besar bilangan pecahan bercampur antara integer berturut-turut (untuk garis nombor).

Sebab mengapa format 64-bit digambarkan sebagai berketepatan dua kali ganda atau lebih tinggi, berbanding dengan format 32-bit, ialah selang antara dua pecahan campuran berturut-turut yang dibatasi oleh dua integer berturut-turut untuk format 64-bit adalah lebih kecil daripada 32 yang sepadan. -selang format bit. Selain itu, terdapat lebih banyak pecahan bercampur yang mungkin antara dua integer terikat untuk format 64-bit daripada yang terdapat pada format 32-bit.

Menukar Bahagian Perpuluhan (Pecahan) Nombor Perpuluhan kepada Bahagian Perduaan
36.375 ialah nombor perpuluhan dengan bahagian perpuluhan '.375'. Bahagian perpuluhan '.375' ialah pecahan antara sifar dan satu. 0.5 dalam asas sepuluh adalah sama dengan nilai 1/2 dalam asas dua. Yang 0.5 10 yang dinyatakan dengan pengembangan asas dua ialah:

Ia bukan 0.101 2 yang bermaksud 0.625 10 . Bahagian perpuluhan nombor perpuluhan mempunyai bahagian perduaan yang setara untuk nombor perduaan yang sepadan. Jadi, untuk menukar nombor perpuluhan seperti 36.375 10 kepada asas dua, tukar 36 kepada binari dan kemudian tukar .375 juga kepada binari. Kemudian, gabungkan kedua-dua keputusan dengan titik binari. Kaedah untuk menukar dua bahagian adalah berbeza. Cara menukar integer perpuluhan kepada asas 2 dijelaskan dalam bab 1.

Untuk menukar pecahan perpuluhan kepada pecahan binari, ikuti langkah berikut:

  • Darab pecahan perpuluhan (bahagian perpuluhan) dengan 2. Integer yang terhasil daripada ini ialah digit perduaan pertama.
  • Ulangi langkah sebelumnya dengan hasil perpuluhan pecahan untuk mendapatkan digit perduaan seterusnya.
  • Teruskan mengulangi langkah sebelumnya sehingga hasil pecahan perpuluhan ialah .0000—.

Contoh: Tukarkan bahagian pecahan 36.375 10 kepada bahagian pecahan setara dalam asas dua.

Penyelesaian:

Ambil perhatian bahawa dalam langkah ketiga, .500 telah didarab dengan 2 dan bukan 1.500. Pecahan sepadan binari dibaca pada lajur terakhir dari atas. Maka, hasil berikut ialah:

.375 10 = .011 2

Menukar Bahagian Perduaan (Pecahan) Nombor Perduaan kepada Bahagian Perpuluhan
Untuk mencapai ini, kembangkan pecahan binari dalam kuasa timbal balik 2.

Contoh: Tukarkan bahagian pecahan 100100.011 2 kepada bahagian pecahan setara dalam asas sepuluh.

Penyelesaian:

3.10 Awalan Nombor dalam Pengkomputeran

Dalam kehidupan biasa, 1 kilo bermakna 1000 yang disingkatkan dalam k (huruf kecil) seperti dalam 1kg. Dalam pengkomputeran, 1 kilo bermakna 2 10 = 1024, tetapi disingkatkan dalam K (huruf besar) seperti dalam 1Kbits. Dalam kehidupan biasa, 1 mega bermakna 1,000,000 yang disingkatkan dalam M (huruf besar) seperti dalam 1Mg. Dalam pengkomputeran, 1 mega bermakna 2 dua puluh = 1,048,576 = 2 10 x 2 10 = 1024 x 1024 = 1,048,576 dan masih dipendekkan dalam M (huruf besar) seperti dalam 1Mbits. Dalam kehidupan biasa, 1 giga bermakna 1,000,000,000 disingkatkan dalam G (huruf besar) seperti dalam 1Gg. Dalam pengkomputeran, 1 giga bermakna 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 dipendekkan dalam G (huruf besar) seperti dalam 1Gbits. Jadual berikut memberikan maksud empat awalan dalam kehidupan normal dan dalam pengkomputeran:

3.11 Masalah

Pembaca dinasihatkan untuk menyelesaikan semua masalah dalam bab sebelum beralih ke bab seterusnya.

  1. Lukis garis nombor dengan integer dari -10 hingga +10.
  2. Tambahkan nombor binari berikut dalam pelengkap dua 8-bit: 101010 2 dan 1111 2 .
  3. Gunakan hanya pendekatan pelengkap kedua-duanya dalam 8-bit untuk menolak nombor perduaan 1111 2 daripada nombor binari 101010 2 .
  4. Cari hasil darab 10110 2 x 1101 2 dalam asas dua.
  5. Bahagikan 36,375 10 menjelang 1000 10 dalam perpuluhan dan dalam binari, dan bandingkan hasilnya.
  6. Gunakan 8-bit pilihan anda untuk menggambarkan logik AND, OR, XOR, Invert, Shift Right, Shift Kiri, Putar Kanan dan Putar Kiri. Setiap bait hendaklah mempunyai campuran 1 dan 0.
  7. a) Tulis kod berangka untuk aksara ASCII sifar dalam perenambelasan, perduaan dan perpuluhan.
    b) Tulis kod berangka untuk aksara ASCII “1” dalam perenambelasan, perduaan dan perpuluhan.
    c) Tulis kod berangka untuk aksara ASCII “A” dalam perenambelasan, perduaan dan perpuluhan.
    d) Tulis kod berangka untuk aksara ASCII “a” dalam perenambelasan, perduaan dan perpuluhan.
  8. Tukarkan 49.49 10 menjadi asas dua. Tukar hasil anda ke dalam format titik terapung IEEE 32-bit.
  9. a) Bagaimanakah format titik terapung IEEE 64-bit berbeza daripada format 32-bit?
    b) Berikan dua sebab yang berkaitan mengapa format 64-bit digambarkan sebagai berketepatan dua kali ganda atau lebih tinggi berbanding dengan
    Format 32-bit.