Dua belas soalan asli ini meliputi perduaan dan denari, heksadesimal, penambahan perduaan dengan limpahan, kod aksara, kedalaman bit dan satu jejak ringkas. Ia bergerak dari mudah ke lebih sukar, dan semua nombor perduaan ialah 8 bit kecuali dinyatakan.
Tulis kerja anda di atas kertas dahulu, kemudian buka jawapan. Tandakan setiap soalan betul atau salah, dan gunakan bahagian di hujung untuk melihat pelajaran mana yang perlu diulang kaji.
Anda boleh menyemak penukaran dalam kotak pasir penaakulan Python dan menjejak gelung dalam pelatih jejak pseudokod. Set ini tergolong dalam Perwakilan nombor dan teks.
Soalan
1. (mudah) Tukar 00101101 kepada denari.
Lihat jawapan
Lajur yang ada 1: 32, 8, 4, 1. Jumlah: 32 + 8 + 4 + 1 = 45.
2. (mudah) Tukar 150 kepada perduaan 8 bit.
Lihat jawapan
128 muat (baki 22). 64 tidak. 32 tidak. 16 muat (baki 6). 8 tidak. 4 muat (baki 2). 2 muat (baki 0). 1 tidak. Bit: 1 0 0 1 0 1 1 0, jadi 10010110. Semak: 128 + 16 + 4 + 2 = 150.
3. (mudah) Apakah nombor denari terbesar yang boleh disimpan dalam 6 bit?
Lihat jawapan
6 bit memberi 26 = 64 corak, bermula pada 0, jadi yang terbesar ialah 64 − 1 = 63. Semak: 111111 = 32 + 16 + 8 + 4 + 2 + 1 = 63.
4. (mudah ke sederhana) Tukar 10101110 kepada heksadesimal, kemudian kepada denari.
Lihat jawapan
Kumpulan: 1010 dan 1110. 1010 = 10 = A dan 1110 = 14 = E. Heks: AE. Denari: 10 × 16 + 14 = 160 + 14 = 174. Semak dalam perduaan: 128 + 32 + 8 + 4 + 2 = 174.
5. (sederhana) Tukar heks 5D kepada perduaan dan denari.
Lihat jawapan
5 = 0101 dan D = 13 = 1101, jadi perduaannya 01011101. Denari: 5 × 16 + 13 = 80 + 13 = 93. Semak: 64 + 16 + 8 + 4 + 1 = 93.
6. (sederhana) Tambah 00110011 dan 01011101. Beri hasil 8 bit dan semak dalam denari.
Lihat jawapan
Semakan denari dahulu: 00110011 = 32 + 16 + 2 + 1 = 51, dan 01011101 = 64 + 16 + 8 + 4 + 1 = 93. Dijangka: 144.
Lajur demi lajur dari kanan: lajur 0: 1 + 1 = 0 bawa 1. Lajur 1: 1 + 0 + 1 = 0 bawa 1. Lajur 2: 0 + 1 + 1 = 0 bawa 1. Lajur 3: 0 + 1 + 1 = 0 bawa 1. Lajur 4: 1 + 1 + 1 = 1 bawa 1. Lajur 5: 1 + 0 + 1 = 0 bawa 1. Lajur 6: 0 + 1 + 1 = 0 bawa 1. Lajur 7: 0 + 0 + 1 = 1.
Hasil: 10010000 = 128 + 16 = 144. Ia sepadan, dan tiada nombor bawa keluar, jadi tiada limpahan.
7. (sederhana) Tambah 11110000 dan 00010000. Nyatakan apa yang berlaku.
Lihat jawapan
240 + 16 = 256. Lajur 0 hingga 3 ialah 0 + 0 = 0. Lajur 4: 1 + 1 = 0 bawa 1. Lajur 5, 6 dan 7: 1 + 0 + 1 = 0 bawa 1 setiap kali, dan lajur 7 membawa 1 keluar.
Hasil 8 bit ialah 00000000 dengan nombor bawa keluar. Hasil melimpah: 256 terlalu besar untuk 8 bit (maksimum 255), jadi nilai tersimpan 0 adalah salah.
8. (sederhana) Dalam ASCII, A mempunyai kod 65. Nyahkod kod 72 69 76 80.
Lihat jawapan
72 − 65 = 7, jadi H. 69 − 65 = 4, jadi E. 76 − 65 = 11, jadi L. 80 − 65 = 15, jadi P. Mengira A sebagai tempat 0: H ialah huruf ke-8 (tempat 7), E huruf ke-5 (tempat 4), L huruf ke-12 (tempat 11), P huruf ke-16 (tempat 15). Perkataannya HELP.
9. (sederhana) Terangkan mengapa aplikasi mesej yang menyokong aksara Cina tidak boleh menggunakan ASCII 7 bit sahaja.
Lihat jawapan
ASCII 7 bit mempunyai 27 = 128 kod, yang meliputi huruf Inggeris, digit dan beberapa simbol tetapi bukan aksara Cina. Set aksara yang lebih besar seperti Unicode menggunakan lebih bit bagi setiap aksara, jadi ia mempunyai kod yang cukup. Kosnya ialah setiap aksara mengambil lebih storan.
10. (sederhana ke sukar) Sebuah permainan menggunakan 20 warna hijau berbeza dalam palet piksel. Apakah kedalaman warna minimum yang diperlukan?
Lihat jawapan
24 = 16 kurang daripada 20. 25 = 32 sekurang-kurangnya 20. Kedalaman warna minimum ialah 5 bit.
11. (sukar) Sebuah imej mempunyai kedalaman warna 8 bit. Kedalaman dinaikkan 2 bit. Dengan faktor berapakah bilangan warna yang mungkin bertambah, dan apakah bilangan baharunya?
Lihat jawapan
Asal: 28 = 256 warna. Kedalaman baharu: 10 bit, jadi 210 = 1024 warna. Setiap bit tambahan menggandakan bilangan, jadi dua bit tambahan mendarab dengan 2 × 2 = 4. Semak: 256 × 4 = 1024.
12. (sukar) Jejak pseudokod ini. Apakah outputnya, dan kuasa 2 yang manakah ia?
Value ← 1
FOR Count ← 1 TO 5
Value ← Value * 2
NEXT Count
OUTPUT Value
Lihat jawapan
| Count | Value selepas badan gelung |
|---|---|
| mula | 1 |
| 1 | 2 |
| 2 | 4 |
| 3 | 8 |
| 4 | 16 |
| 5 | 32 |
Outputnya 32, iaitu 25. Ia juga menunjukkan bahawa 5 bit boleh mewakili 32 nilai berbeza.
Jika anda tersilap
| Soalan | Punca yang mungkin | Ulang kaji |
|---|---|---|
| 1, 2, 3 | Nilai tempat dari hujung salah, atau lajur terlangkau | Tukar antara perduaan dan denari |
| 4, 5 | Pengumpulan bit yang salah, atau keliru antara A hingga F | Gunakan heksadesimal sebagai perwakilan padat |
| 6, 7 | Nombor bawa hilang, atau tiada pernyataan tentang limpahan | Tambah nilai perduaan dengan kesedaran limpahan |
| 8, 9 | Mengira dari huruf yang salah, atau menerangkan tanpa “lebih bit” | Terangkan pengekodan aksara |
| 10, 11, 12 | Mendarab dan bukan menggunakan kuasa 2 | Kaitkan kedalaman bit dengan perwakilan yang mungkin |
Simpan rekod ringkas kesilapan dalam log kesilapan dan baris ujian semula, dan cuba versi baharu setiap soalan yang salah beberapa hari kemudian. Jika kesilapan terus berulang, tuisyen Computer Science dalam talian secara satu dengan satu membolehkan guru memerhati kerja anda semasa ia berlaku.