Skaičiavimo sistemos: uždaviniai su sprendimais žingsnis po žingsnio
Nemokami uždaviniai tema Skaičiavimo sistemos su brėžiniais, užuominomis ir išsamiais sprendimais. Kiekvieną kartą naujos reikšmės, trijų lygių: iš dvejetainės ir šešioliktainės į dešimtainę, papildomasis kodas, bitai, intervalai ir atmintis.
Nemokamas pratybų uždavinysLengvas
Nustatykite bitus, kad 8 bitų registras turėtų 0x99. Kokia šablono reikšmė N dešimtainėje sistemoje?
0x99
Spustelėkite bitą, kad jį perjungtumėte tarp 0 ir 1. Laukelyje rodomas jūsų šablonas kaip skaičius be ženklo, ir galite jį taip pat įvesti. Tikslus atsakymas: sveikasis skaičius, be apvalinimo.
Lengvasiš dvejetainės ir šešioliktainės į dešimtainę
Vidutinispapildomasis kodas
Sunkusbitai, intervalai ir atmintis
Pagrindinės formulės
Pozicijų vertės
dvejetainė 2k, aštuntainė 8k, šešioliktainė 16k
Į dešimtainę
Σ dk·bk
Iš dešimtainės
dalykite iš pagrindo, liekanas skaitykite iš apačios į viršų
Šešioliktainė ↔ dvejetainė
vienas šešioliktainis skaitmuo = 4 bitai
Papildomasis kodas
invertuokite bitus ir pridėkite 1
Išmokite Skaičiavimo sistemos nuo nulio
1Kas yra skaičiavimo sistema
Kasdieniame gyvenime skaičiuojate dešimtaine sistema, kurios pagrindas 10. Joje yra dešimt skaitmenų, nuo 0 iki 9, ir kiekviena vieta verta dešimt kartų daugiau nei vieta jos dešinėje.
Skaičiuje 352 trejetas vertas 300, penketas 50, o dvejetas 2. Vietų vertės iš dešinės yra 1, 10, 100.
352 = 3 · 100 + 5 · 10 + 2 · 1
Kompiuteris viską saugo kaip įjungtus arba išjungtus jungiklius. Todėl jis skaičiuoja dvejetaine sistema, kurios pagrindas 2, su vieninteliais skaitmenimis 0 ir 1.
Vienas dvejetainis skaitmuo yra bitas. 8 bitų grupė yra baitas.
Taisyklė kiekvienoje sistemoje ta pati: kiekvieno skaitmens vertė yra jo reikšmė, padauginta iš pagrindo laipsnio.
Savikontrolė Dešimtainiame skaičiuje 4721 kam lygus septynetas?
7000
700
70
7
Atsakymas: 700. Skaičiuojant iš dešinės, vietų vertės yra 1, 10, 100 ir 1000. Septynetas trečioje vietoje, todėl jis vertas 7 · 100 = 700.
2Dvejetainė ir šešioliktainė
Dvejetainėje sistemoje vietų vertės iš dešinės yra 1, 2, 4, 8, 16 ir t. t. Kiekviena vieta verta du kartus daugiau nei vieta jos dešinėje.
8 bitų skaičiui vietų vertės yra 128, 64, 32, 16, 8, 4, 2 ir 1.
Norėdami perskaityti dvejetainį skaičių, sudėkite visų bitų, lygių 1, vietų vertes. Skaičiui 0011 0010 tai 32 + 16 + 2 = 50.
Ilgas bitų eilutes sunku skaityti. Programuotojai jas dažnai rašo šešioliktaine (hex) sistema, kurios pagrindas 16.
Hex reikia 16 skaitmenų. Naudojami nuo 0 iki 9, o tada raidės A = 10, B = 11, C = 12, D = 13, E = 14 ir F = 15.
Hex vietų vertės iš dešinės yra 1, 16, 256 ir 4096. Hex skaičius dažnai rašomas su 0x priekyje, pavyzdžiui, 0x2F.
Vienas hex skaitmuo yra lygiai 4 bitai, todėl 0011 0010 yra 0x32: 0011 yra 3, o 0010 yra 2.
Savikontrolė Kam lygus 0x1A dešimtainėje sistemoje?
110
11
161
26
Atsakymas: 26. A = 10. Vietų vertės yra 16 ir 1, taigi 1 · 16 + 10 · 1 = 26. Skaitmenis surašius greta (110) arba sudėjus (11) vietų vertės ignoruojamos. 161 vietų vertes naudoja atvirkščia tvarka.
3Neigiami skaičiai: papildomasis kodas
Baitas, kurio visos vietos teigiamos, saugo nuo 0 iki 255. Tai vadinama be ženklo.
Neigiamiems skaičiams saugoti kompiuteriai naudoja papildomąjį kodą (two’s complement). Vienintelis skirtumas: kairiausias bitas vertas −128, o ne +128.
Taigi 1000 0011 yra −128 + 2 + 1 = −125. Kairiausias bitas vadinamas ženklo bitu: kai jis 1, skaičius neigiamas.
8 bitų papildomojo kodo skaičius kinta nuo −128 (1000 0000) iki +127 (0111 1111).
Norėdami užrašyti neigiamą skaičių −x, pradėkite nuo +x dvejetainėje sistemoje, invertuokite kiekvieną bitą (0 tampa 1, 1 tampa 0) ir pridėkite 1.
Pavyzdys −5: 5 yra 0000 0101. Invertuota gaunama 1111 1010. Pridėjus 1 gaunama 1111 1011.
Tas pats bitų rinkinys, skaitomas kaip be ženklo, turi vertę 256 − x. Skaičiui −5 tai 251, ir 1111 1011 iš tikrųjų yra 128 + 64 + 32 + 16 + 8 + 2 + 1 = 251.
Savikontrolė 8 bitų rinkinys 1111 1111 saugo papildomojo kodo skaičių. Kokia jo vertė?
255
−127
−128
−1
Atsakymas: −1. −128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = −1. 255 yra skaitymas be ženklo. −127 gaunama pirmą bitą laikant minuso ženklu prieš 111 1111.
4Metodas žingsnis po žingsnio
Dvejetainis ar hex į dešimtainį:
Po kiekvienu skaitmeniu užrašykite vietos vertę: dvejetainei 2 laipsnius, hex 16 laipsnius, pradėdami nuo 1 dešinėje.
Hex sistemoje kiekvieną raidę pakeiskite jos verte: nuo A = 10 iki F = 15.
Kiekvieną skaitmenį padauginkite iš jo vietos vertės ir viską sudėkite.
Papildomasis kodas:
Norėdami perskaityti rinkinį, kairiausiam bitui priskirkite vertę −128 (8 bitais) ir sudėkite visų vienetinių bitų vietų vertes.
Norėdami užrašyti −x, užrašykite +x 8 bitais, invertuokite kiekvieną bitą ir pridėkite 1.
To rinkinio vertė be ženklo yra 256 − x. Naudokite ją savo bitams patikrinti.
Bitai, intervalai ir atmintis:
n bitų duoda 2ⁿ skirtingų rinkinių.
Be ženklo jie saugo nuo 0 iki 2ⁿ − 1. Papildomuoju kodu jie saugo nuo −2ⁿ⁻¹ iki 2ⁿ⁻¹ − 1.
Kad k elementų turėtų savo kodą, raskite mažiausią b, kuriam 2b ≥ k.
Atminčiai elementų skaičių padauginkite iš bitų elementui, tada baitams dalykite iš 8, o KiB – iš 1024.
M = plotis × aukštis × bitai pikseliui / 8 / 1024 (KiB)
5Išspręstas pavyzdys
Sekite kiekvieną žingsnį. Pabandykite nuspėti kitą, prieš jį atidarydami.
Išspręstas pavyzdys
8 bitų rinkinys 1011 0110 saugo sveikąjį skaičių su ženklu papildomuoju kodu. Kokia jo vertė N dešimtainėje sistemoje?
1
Užrašykite vietų vertes
Papildomajame kode kairiausia vieta verta −128. Kitų vietų vertės yra 64, 32, 16, 8, 4, 2 ir 1.
2
Pažiūrėkite į ženklo bitą
Kairiausias bitas yra 1, todėl skaičius neigiamas.
3
Sudėkite vienetinius bitus
Vienetiniai bitai yra vietose −128, 32, 16, 4 ir 2.
N = −128 + 32 + 16 + 4 + 2 = −74
4
Patikrinkite verte be ženklo
Skaitant kaip be ženklo, rinkinys yra 128 + 32 + 16 + 4 + 2 = 182.
Neigiamam skaičiui vertė be ženklo yra 256 − x, taigi x = 256 − 182 = 74. Vėl gauname N = −74.
5
Patikrinkite invertavimu
Invertuokite 1011 0110 ir gaukite 0100 1001, tada pridėkite 1 ir gaukite 0100 1010.
0100 1010 yra 64 + 8 + 2 = 74. Taigi pradinis rinkinys yra −74.
Atsakymas
N = −74
6Dažnos klaidos
Pamirštama pridėti 1 po bitų invertavimo. Rezultatas vienetu per mažas.
Papildomojo kodo rinkinys skaitomas kaip be ženklo, pavyzdžiui, 1111 1111 kaip 255, o ne −1.
Ženklo bitas laikomas minuso ženklu prieš kitus bitus. Papildomajame kode jis vertas −128.
Vietos išdėstomos atvirkščia tvarka. Vieta, verta 1, visada yra dešinėje.
Hex sistemoje naudojama A = 11. Raidės prasideda nuo A = 10.
Atminties uždaviniuose painiojami bitai ir baitai. Bitų skaičių padalykite iš 8.
Savikontrolė Kam lygus −5 kaip 8 bitų papildomojo kodo rinkinys?
0000 0101
1000 0101
1111 1010
1111 1011
Atsakymas: 1111 1011. 5 yra 0000 0101. Invertavus gaunama 1111 1010, o pridėjus 1 – 1111 1011. 1111 1010 pamiršta pridėti 1, o 1000 0101 prieš 5 padeda minuso ženklą.
7Kaip atrodo egzamino uždaviniai
Lengvi: dvejetainis ir hex į dešimtainį. 8 bitų dvejetainį skaičių arba 3 skaitmenų hex skaičių paverskite dešimtainiu.
Vidutiniai: papildomasis kodas. Perskaitykite 8 bitų rinkinio su ženklu vertę arba neigiamą skaičių užrašykite rinkiniu ir nurodykite jo vertę be ženklo.
Sunkūs: bitai, intervalai ir atmintis. Didžiausia arba mažiausia (labiausiai neigiama) vertė, tilpstanti n bituose, bitų skaičius k kodų, arba paveikslėlio užimama atmintis.
Šešioliktainį skaičių 0x2BE paverskite dešimtainiu. Raskite N.
0x2BEA = 10 … F = 15
Raskite N
Rodyti užuominas
Šešioliktainės pozicijos iš dešinės vertos 1, 16, 256, 4096.
Raides pakeiskite jų reikšmėmis (A = 10 … F = 15), padauginkite iš pozicijos vertės ir sudėkite.
2 = 2, B = 11, E = 14.
Rodyti atsakymą ir sprendimą žingsnis po žingsnio
Pozicinės skaičiavimo sistemos: kiekvienas skaitmuo vertas savo reikšmės, padaugintos iš pagrindo laipsnio. Dvejetainėje sistemoje pozicijos vertos 1, 2, 4, 8, 16, …, šešioliktainėje 1, 16, 256, …, o A–F reiškia 10–15. 8 bitų papildomajame kode kairysis bitas vertas −128 vietoj +128; taip saugomi neigiami skaičiai.
Kiekvieną skaitmenį padauginkite iš jo pozicijos vertės
2·256 + 11·16 + 14·1 = 702
Atsakymas
0x2BE = 702
Pavyzdys 2Vidutinis
Nustatykite bitus, kad jie saugotų −45 8 bitų dvejetainiu papildomuoju kodu. Skaitant kaip skaičių be ženklo, kokia šablono reikšmė U?
N = −458 bit
Raskite U
Rodyti užuominas
Užrašykite 45 dvejetaine sistema, invertuokite kiekvieną bitą, tada pridėkite 1.
45 = 0010 1101₂.
Kaip skaičius be ženklo šablonas lygus 256 + N.
Rodyti atsakymą ir sprendimą žingsnis po žingsnio
Bitų nustatymas: kiekvienas bitas vertas dvejeto laipsnio (128, 64, …, 1). Vienas šešioliktainis skaitmuo yra lygiai keturi bitai, o 8 bitų dvejetainiame papildomajame kode kairysis bitas vertas −128. Bitinės operacijos atliekamos kiekvienai bito pozicijai atskirai.
Invertuokite ir pridėkite vienetą
45 = 0010 1101
invertuota: 1101 0010
+1 → 1101 0011
Perskaitykite be ženklo
1101 0011₂ = 256 − 45 = 211
Atsakymas
U = 211
Pavyzdys 3Sunkus
Nustatykite bitus pagal 8 bitų rezultatą 0111 0001 >> 3. Kokia rezultato reikšmė R dešimtainėje sistemoje?
0111 0001>> 3
Raskite R
Rodyti užuominas
Postūmis dešinėn 3 perkelia kiekvieną bitą 3 pozicijomis į dešinę; bitai, iškritę iš dešiniojo galo, prarandami, o kairėje įeina nuliai.
Dirbkite po vieną bito poziciją, iš kairės į dešinę.
Pirmieji keturi rezultato bitai yra 0000.
Rodyti atsakymą ir sprendimą žingsnis po žingsnio
Bitų nustatymas: kiekvienas bitas vertas dvejeto laipsnio (128, 64, …, 1). Vienas šešioliktainis skaitmuo yra lygiai keturi bitai, o 8 bitų dvejetainiame papildomajame kode kairysis bitas vertas −128. Bitinės operacijos atliekamos kiekvienai bito pozicijai atskirai.
Bitas po bito
Postūmis dešinėn 3 perkelia kiekvieną bitą 3 pozicijomis į dešinę; bitai, iškritę iš dešiniojo galo, prarandami, o kairėje įeina nuliai.
0111 0001 >> 3
= 0000 1110
Rezultato reikšmė
0000 1110₂ = 14
Atsakymas
R = 14
Klausimai ir atsakymai
Skaičiavimo sistemos: kas tai?
Kasdieniame gyvenime skaičiuojate dešimtaine sistema, kurios pagrindas 10. Joje yra dešimt skaitmenų, nuo 0 iki 9, ir kiekviena vieta verta dešimt kartų daugiau nei vieta jos dešinėje.
Skaičiuje 352 trejetas vertas 300, penketas 50, o dvejetas 2. Vietų vertės iš dešinės yra 1, 10, 100.
Skaičiavimo sistemos: kaip spręsti uždavinius žingsnis po žingsnio?
Pozicinės skaičiavimo sistemos: kiekvienas skaitmuo vertas savo reikšmės, padaugintos iš pagrindo laipsnio. Dvejetainėje sistemoje pozicijos vertos 1, 2, 4, 8, 16, …, šešioliktainėje 1, 16, 256, …, o A–F reiškia 10–15. 8 bitų papildomajame kode kairysis bitas vertas −128 vietoj +128; taip saugomi neigiami skaičiai.
Skaičiavimo sistemos: ką lavinsite?
Lengvas: iš dvejetainės ir šešioliktainės į dešimtainę
Vidutinis: papildomasis kodas
Sunkus: bitai, intervalai ir atmintis
Kiekviename uždavinyje naujos reikšmės, todėl išmokstate metodą, o ne atsakymą. Strigote? Pirmiausia atverkite nedidelę užuominą, o visą paaiškinimą – tik kai jo prireiks.
Kaip vyksta praktika
Kiekviename uždavinyje naujos reikšmės, todėl išmokstate metodą, o ne atsakymą.
Strigote? Pirmiausia atverkite nedidelę užuominą, o visą paaiškinimą – tik kai jo prireiks.
Jūsų pažanga, klaidos ir išsaugoti uždaviniai išlieka, todėl prieš egzaminą galite viską pakartoti.