Laikantieji vieningą valstybinį egzaminą ir dar daugiau...
Keista, kad informatikos pamokose mokyklose dažniausiai mokiniams parodomas sudėtingiausias ir nepatogiausias būdas konvertuoti skaičius iš vienos sistemos į kitą. Šis metodas susideda iš nuoseklaus pradinio skaičiaus padalijimo iš pagrindo ir likučių surinkimo iš padalijimo atvirkštine tvarka.
Pavyzdžiui, jums reikia konvertuoti skaičių 810 10 į dvejetainį:
Rezultatą rašome atvirkštine tvarka iš apačios į viršų. Pasirodo, 81010 = 11001010102
Jei reikia paversti gana didelius skaičius į dvejetainę sistemą, tada padalijimo kopėčios įgauna kelių aukštų pastato dydį. O kaip surinkti visus vienetus ir nulius ir nepraleisti nė vieno?
Informatikos vieningo valstybinio egzamino programa apima keletą užduočių, susijusių su skaičių konvertavimu iš vienos sistemos į kitą. Paprastai tai konvertuojama tarp aštuntainės ir šešioliktainės sistemos bei dvejetainės. Tai A1, B11 skyriai. Tačiau yra problemų ir su kitomis skaičių sistemomis, pavyzdžiui, B7 skyriuje.
Pirmiausia prisiminkime dvi lenteles, kurias būtų gerai žinoti atmintinai tiems, kurie renkasi informatiką kaip būsimą profesiją.
Skaičiaus 2 galių lentelė:
2 1 | 2 2 | 2 3 | 2 4 | 2 5 | 2 6 | 2 7 | 2 8 | 2 9 | 2 10 |
2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 |
Dvejetainių skaičių nuo 0 iki 15 lentelė su šešioliktainiu pavaizdavimu:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
Sveikųjų skaičių konvertavimas
Taigi, pradėkime nuo konvertavimo tiesiai į dvejetainę sistemą. Paimkime tą patį skaičių 810 10. Turime išskaidyti šį skaičių į terminus, lygius dviejų laipsniams.
1 būdas: Išdėstykite 1 pagal terminų rodiklių eiles. Mūsų pavyzdyje tai yra 9, 8, 5, 3 ir 1. Likusiose vietose bus nuliai. Taigi, gavome dvejetainį skaičių 810 10 = 1100101010 2. Vienetai dedami į 9, 8, 5, 3 ir 1 vietas, skaičiuojant iš dešinės į kairę nuo nulio.
2 metodas: Parašykime terminus kaip dviejų laipsnius vienas po kito, pradedant nuo didžiausio.
810 =
Dabar sudėkite šiuos veiksmus, pavyzdžiui, ventiliatoriaus sulankstymą: 1100101010.
Tai viskas. Tuo pačiu metu taip pat tiesiog išspręsta problema „kiek vienetų yra dvejetainiame skaičiaus 810 žymėjime?
Atsakymas yra tiek, kiek šiame vaizde yra terminų (dviejų galių). 810 turi 5 iš jų.
Dabar pavyzdys paprastesnis.
Paverskime skaičių 63 į 5-ių skaičių sistemą. Artimiausia galia nuo 5 iki 63 yra 25 (5 kvadratas). Kubas (125) jau bus daug. Tai yra, 63 yra tarp kvadrato iš 5 ir kubo. Tada parinksime koeficientą 5 2. Tai yra 2.
Gauname 63 10 = 50 + 13 = 50 + 10 + 3 = 2 * 5 2 + 2 * 5 + 3 = 223 5.
Ir galiausiai labai paprasti vertimai tarp 8 ir šešioliktainių sistemų. Kadangi jų bazė yra dviejų laipsnis, vertimas atliekamas automatiškai, tiesiog pakeičiant skaičius jų dvejetainiu vaizdu. Aštuontainėje sistemoje kiekvienas skaitmuo pakeičiamas trimis dvejetainiais skaitmenimis, o šešioliktainėje sistemoje – keturiais. Šiuo atveju privalomi visi priekiniai nuliai, išskyrus reikšmingiausią skaitmenį.
Paverskime skaičių 547 8 į dvejetainį.
547 8 = | 101 | 100 | 111 |
5 | 4 | 7 |
Dar vienas, pavyzdžiui, 7D6A 16.
7D6A 16 = | (0)111 | 1101 | 0110 | 1010 |
7 | D | 6 | A |
Paverskime skaičių 7368 į šešioliktainę sistemą. Pirmiausia skaičius surašykite trigubais, o tada iš galo padalykite į keturgubus: 736 8 = 111 011 110 = 1 1101 1110 = 1DE 16. Paverskime skaičių C25 16 į aštuntainę sistemą. Pirmiausia skaičius surašome keturiais, o po to nuo galo padalijame juos į tris: C25 16 = 1100 0010 0101 = 110 000 100 101 = 6045 8. Dabar pažiūrėkime, kaip konvertuoti atgal į dešimtainę. Tai nėra sunku, svarbiausia nepadaryti klaidų skaičiavimuose. Išplečiame skaičių į daugianarį su bazės laipsniais ir jų koeficientais. Tada viską padauginame ir pridedame. E68 16 = 14 * 16 2 + 6 * 16 + 8 = 3688. 732 8 = 7 * 8 2 + 3 * 8 + 2 = 474 .
Neigiamų skaičių konvertavimas
Čia reikia atsižvelgti į tai, kad skaičius bus pateiktas dviejų komplemento kodu. Norėdami konvertuoti skaičių į papildomą kodą, turite žinoti galutinį skaičiaus dydį, tai yra, į ką norime jį sutalpinti – baite, dviem baitais, keturiais. Reikšmingiausias skaičiaus skaitmuo reiškia ženklą. Jei yra 0, tada skaičius yra teigiamas, jei 1, tada jis yra neigiamas. Kairėje pusėje skaičius papildomas ženkliniu skaitmeniu. Mes nelaikome beženklių skaičių, jie visada yra teigiami, o reikšmingiausias bitas juose naudojamas kaip informacija.
Norėdami konvertuoti neigiamą skaičių į dvejetainį papildinį, turite konvertuoti teigiamą skaičių į dvejetainį, tada pakeisti nulius į vienetus, o vienetus - į nulius. Tada prie rezultato pridėkite 1.
Taigi, paverskime skaičių -79 į dvejetainę sistemą. Skaičius užims vieną baitą.
79 konvertuojame į dvejetainę sistemą, 79 = 1001111. Prie baito dydžio pridedame nulius kairėje, 8 bitai, gauname 01001111. 1 keičiame į 0 ir 0 į 1. Gauname 10110000. Prie 1 pridedame Rezultatą gauname atsakymą 10110001. Pakeliui atsakome į vieningo valstybinio egzamino klausimą „kiek vienetų yra dvejetainiame skaičiaus -79 atvaizde? Atsakymas yra 4.
Pridėjus 1 prie atvirkštinio skaičiaus, pašalinamas skirtumas tarp atvaizdų +0 = 00000000 ir -0 = 11111111. Dviejų komplemento kode jie bus parašyti taip pat, kaip 00000000.
Trupmeninių skaičių konvertavimas
Trupmeniniai skaičiai konvertuojami atvirkštiniu būdu sveikuosius skaičius dalijant iš bazės, į kurią žiūrėjome pačioje pradžioje. Tai yra, naudojant nuoseklųjį dauginimą iš naujos bazės su ištisų dalių rinkimu. Daugybos metu gautos sveikosios dalys yra renkamos, bet nedalyvauja šiose operacijose. Dauginamos tik trupmenos. Jei pradinis skaičius yra didesnis nei 1, sveikoji ir trupmeninė dalys verčiamos atskirai ir suklijuojamos.
Paverskime skaičių 0,6752 į dvejetainę sistemą.
0 | ,6752 |
*2 | |
1 | ,3504 |
*2 | |
0 | ,7008 |
*2 | |
1 | ,4016 |
*2 | |
0 | ,8032 |
*2 | |
1 | ,6064 |
*2 | |
1 | ,2128 |
Procesą galima tęsti ilgą laiką, kol trupmeninėje dalyje gausime visus nulius arba bus pasiektas reikiamas tikslumas. Kol kas sustokime ties 6 ženklu.
Pasirodo, 0,6752 = 0,101011.
Jei skaičius buvo 5,6752, tada dvejetainiu būdu jis bus 101,101011.
Galima suformuluoti sveikųjų skaičių konvertavimo iš radikso sistemos algoritmą p į sistemą su pagrindu q :
1. Išreikškite naujos skaičių sistemos pagrindą skaičiais iš pradinės skaičių sistemos ir atlikite visus tolesnius veiksmus pradinėje skaičių sistemoje.
2. Duotąjį skaičių ir gautus sveikuosius dalinius nuosekliai padalinkite iš naujos skaičių sistemos pagrindo, kol gausime koeficientą, mažesnį už daliklį.
3. Gautos liekanos, kurios yra naujosios skaičių sistemos skaičiaus skaitmenys, suderinamos pagal naujosios skaičių sistemos abėcėlę.
4. Sudarykite skaičių naujoje skaičių sistemoje, pradėdami nuo paskutinės liekanos.
2.12 pavyzdys. Konvertuokite dešimtainį skaičių 173 10 į aštuntainių skaičių sistemą:
Gauname: 173 10 = 255 8
2.13 pavyzdys. Paverskite dešimtainį skaičių 173 10 į šešioliktainę skaičių sistemą:
Gauname: 173 10 = 16 AD.
2.14 pavyzdys. Paverskite dešimtainį skaičių 11 10 į dvejetainę skaičių sistemą. Aukščiau aptartą veiksmų seką (vertimo algoritmą) patogiau pavaizduoti taip:
Gauname: 11 10 = 1011 2.
2.15 pavyzdys. Kartais patogiau vertimo algoritmą užrašyti lentelės forma. Paverskime dešimtainį skaičių 363 10 į dvejetainį skaičių.
Skirstytuvas |
|||||||||
Gauname: 363 10 =101101011 2
Galima suformuluoti tinkamos trupmenos konvertavimo su baze algoritmą p į trupmeną su pagrindu q:
1. Išreikškite naujos skaičių sistemos pagrindą skaičiais iš pradinės skaičių sistemos ir atlikite visus tolesnius veiksmus pradinėje skaičių sistemoje.
2. Duotus skaičius ir gautas sandaugų trupmenines dalis nuosekliai dauginkite iš naujos sistemos pagrindo, kol sandaugos trupmeninė dalis taps lygi nuliui arba bus pasiektas reikiamas skaičių vaizdavimo tikslumas.
3. Gautos sveikųjų skaičių dalys, kurios yra skaičiaus skaitmenys naujoje skaičių sistemoje, turėtų būti suderintos su naujosios skaičių sistemos abėcėle.
4. Sudarykite trupmeninę skaičiaus dalį naujoje skaičių sistemoje, pradedant nuo pirmosios sandaugos sveikosios dalies.
2.17 pavyzdys. Konvertuokite skaičių 0,65625 10 į aštuntainių skaičių sistemą.
Gauname: 0,65625 10 =0,52 8
2.17 pavyzdys. Konvertuokite skaičių 0,65625 10 į šešioliktainę skaičių sistemą.
x 16 |
|
Gauname: 0.65625 10 =0.A8 1
2.18 pavyzdys. Paverskite dešimtainę trupmeną 0,5625 10 į dvejetainę skaičių sistemą.
x 2 |
|
x 2 |
|
x 2 |
|
x 2 |
|
Gauname: 0,5625 10 =0,1001 2
2.19 pavyzdys. Paverskite dešimtainę trupmeną 0,7 10 į dvejetainę skaičių sistemą.
Akivaizdu, kad šis procesas gali tęstis neribotą laiką, suteikdamas vis daugiau naujų ženklų dvejetainio skaičiaus 0,7 10 ekvivalento atvaizde. Taigi keturiais žingsniais gauname skaičių 0,1011 2, o septyniais žingsniais skaičių 0,1011001 2, kuris yra tikslesnis skaičiaus 0,7 10 atvaizdavimas dvejetainėje skaičių sistemoje ir tt Toks nesibaigiantis procesas baigiamas tam tikru žingsniu, kai manoma, kad gautas reikiamas skaičių vaizdavimo tikslumas.
Savavališkų skaičių vertimas, t.y. skaičiai, kuriuose yra sveikasis skaičius ir trupmeninė dalis, atliekami dviem etapais. Sveikoji dalis verčiama atskirai, o trupmeninė dalis – atskirai. Galutiniame gauto skaičiaus įraše sveikoji dalis nuo trupmeninės dalies atskiriama kableliu (tašku).
2.20 pavyzdys. Konvertuokite skaičių 17,25 10 į dvejetainę skaičių sistemą.
Gauname: 17,25 10 = 1001,01 2
2.21 pavyzdys. Konvertuokite skaičių 124,25 10 į aštuntainę sistemą.
Gauname: 124,25 10 = 174,2 8
Sveikųjų skaičių vertimas. Jei q-arių skaičių sistemos pagrindas yra 2 laipsnis, tada skaičių konvertavimas iš q-arinių skaičių sistemos į 2-ių skaičių sistemą ir atgal gali būti atliekamas pagal paprastesnes taisykles. Norint į skaičių sistemoje įrašyti sveikąjį dvejetainį skaičių, kurio bazė q=2 n, reikia:
1. Padalinkite dvejetainį skaičių iš dešinės į kairę į grupes po n skaitmenų.
2. Jei paskutinėje kairėje grupėje yra mažiau nei n skaitmenų, tada kairėje ją reikia papildyti nuliais iki reikiamo skaitmenų skaičiaus.
2.22 pavyzdys. Skaičius 101100001000110010 2 bus konvertuotas į aštuntųjų skaičių sistemą.
Skaičius iš dešinės į kairę padalijame į triadas ir po kiekvienu užrašome atitinkamą aštuntainį skaitmenį:
Gauname pradinio skaičiaus aštuntainį vaizdą: 541062 8 .
2.23 pavyzdys. Skaičius 1000000000111110000111 2 bus konvertuotas į šešioliktainę skaičių sistemą.
Skaičius iš dešinės į kairę padalijame į tetradas ir po kiekvienu iš jų užrašome atitinkamą šešioliktainį skaitmenį:
Gauname šešioliktainį pradinio skaičiaus vaizdą: 200F87 16.
Trupmeninių skaičių konvertavimas. Norint parašyti trupmeninį dvejetainį skaičių skaičių sistemoje, kurios bazė q=2 n, reikia:
1. Padalinkite dvejetainį skaičių iš kairės į dešinę į grupes po n skaitmenų.
2. Jei paskutinėje dešinėje grupėje yra mažiau nei n skaitmenų, tada ją reikia papildyti dešinėje nuliais iki reikiamo skaitmenų skaičiaus.
3. Laikykite kiekvieną grupę n bitų dvejetainiu skaičiumi ir įrašykite jį su atitinkamu skaitmeniu skaičių sistemoje, kurios pagrindas q=2 n.
2.24 pavyzdys. Skaičius 0,10110001 2 bus konvertuotas į aštuntųjų skaičių sistemą.
Skaičius iš kairės į dešinę padalijame į triadas ir po kiekvienu užrašome atitinkamą aštuntainį skaitmenį:
Gauname pradinio skaičiaus aštuntainį vaizdą: 0,542 8 .
2.25 pavyzdys. Skaičius 0,100000000011 2 bus konvertuotas į šešioliktainę skaičių sistemą. Skaičius iš kairės į dešinę padalijame į tetradas ir po kiekvienu iš jų užrašome atitinkamą šešioliktainį skaitmenį:
Gauname šešioliktainį pradinio skaičiaus vaizdą: 0,803 16
Savavališkų skaičių vertimas. Norint į skaičių sistemoje įrašyti savavališką dvejetainį skaičių, kurio pagrindas q=2 n, reikia:
1. Duoto dvejetainio skaičiaus sveikąją dalį iš dešinės į kairę, o trupmeninę iš kairės į dešinę padalinkite į grupes po n skaitmenų.
2. Jei paskutinėje kairėje ir (arba) dešinėje grupėse yra mažiau nei n skaitmenų, tada jos kairėje ir (arba) dešinėje turi būti papildytos nuliais iki reikiamo skaitmenų skaičiaus;
3. Laikykite kiekvieną grupę n bitų dvejetainiu skaičiumi ir įrašykite jį su atitinkamu skaitmeniu skaičių sistemoje, kurios bazė q = 2 n
2.26 pavyzdys. Paverskime skaičių 111100101.0111 2 į aštuntainių skaičių sistemą.
Skaičiaus sveikąsias ir trupmenines dalis padalijame į triadas ir po kiekviena užrašome atitinkamą aštuntainį skaitmenį:
Gauname pradinio skaičiaus aštuntainį vaizdą: 745.34 8 .
2.27 pavyzdys. Skaičius 11101001000,11010010 2 bus konvertuotas į šešioliktainę skaičių sistemą.
Skaičiaus sveikąsias ir trupmenines dalis padalijame į sąsiuvinius ir po kiekvienu užrašome atitinkamą šešioliktainį skaitmenį:
Gauname šešioliktainį pradinio skaičiaus vaizdą: 748,D2 16.
Skaičių konvertavimas iš skaičių sistemų, kurių bazė q=2n į dvejetainį. Norint paversti savavališką skaičių, užrašytą skaičių sistemoje su baze q=2 n, į dvejetainę skaičių sistemą, reikia pakeisti kiekvieną šio skaičiaus skaitmenį jo n skaitmens atitikmeniu dvejetainėje skaičių sistemoje.
2.28 pavyzdys.Paverskime šešioliktainį skaičių 4AC35 16 į dvejetainę skaičių sistemą.
Pagal algoritmą:
Gauname: 1001010110000110101 2 .
2.38. Užpildykite lentelę, kurios kiekvienoje eilutėje turi būti įrašytas tas pats sveikasis skaičius skirtingomis skaičių sistemomis.
Dvejetainis |
aštuntainis |
Dešimtainė |
Šešioliktainis |
2.39. Užpildykite lentelę, kurios kiekvienoje eilutėje skirtingomis skaičių sistemomis turi būti įrašytas tas pats trupmeninis skaičius.
Dvejetainis |
aštuntainis |
Dešimtainė |
Šešioliktainis |
2.40. Užpildykite lentelę, kurios kiekvienoje eilutėje skirtingomis skaičių sistemomis turi būti įrašytas tas pats savavališkas skaičius (skaičiuje gali būti ir sveikasis skaičius, ir trupmeninė dalis).
Dvejetainis |
aštuntainis |
Dešimtainė |
Šešioliktainis |
59.B |
1 pastaba
Jei norite konvertuoti skaičių iš vienos skaičių sistemos į kitą, tada patogiau pirmiausia konvertuoti į dešimtainę skaičių sistemą, o tik tada konvertuoti iš dešimtainės skaičių sistemos į bet kurią kitą skaičių sistemą.
Skaičiavimo technologijoje, kurioje naudojama mašininė aritmetika, skaičių konvertavimas iš vienos skaičių sistemos į kitą vaidina svarbų vaidmenį. Žemiau pateikiame pagrindines tokių transformacijų (vertimų) taisykles.
Konvertuojant dvejetainį skaičių į dešimtainį, dvejetainį skaičių reikia pavaizduoti kaip daugianarį, kurio kiekvienas elementas pavaizduotas kaip skaičiaus skaitmens ir atitinkamos bazinio skaičiaus laipsnio sandauga, šiuo atveju $2$, ir tada reikia apskaičiuoti daugianarį pagal dešimtainės aritmetikos taisykles:
$X_2=A_n \cdot 2^(n-1) + A_(n-1) \cdot 2^(n-2) + A_(n-2) \cdot 2^(n-3) + ... + A_2 \cdot 2^1 + A_1 \cdot 2^0 $
1 pav. 1 lentelė
1 pavyzdys
Konvertuokite skaičių $11110101_2$ į dešimtainę skaičių sistemą.
Sprendimas. Naudodami pateiktą bazinio $2$ laipsnių $1$ lentelę, skaičių pavaizduojame kaip daugianarį:
11110101_2 USD = 1 \ctaškas 27 + 1 \ctaškas 26 + 1 \ctaškas 25 + 1 \ctaškas 24 + 0 \ctaškas 23 + 1 \ctaškas 22 + 0 \ctaškas 21 + 1 \ctaškas 20 = 12 +3 + 2 + 0 + 4 + 0 + 1 = 245_(10)$
Norėdami konvertuoti skaičių iš aštuntainių skaičių sistemos į dešimtainę skaičių sistemą, turite jį pavaizduoti kaip daugianarį, kurio kiekvienas elementas yra pavaizduotas kaip skaičiaus skaitmens ir atitinkamos bazinio skaičiaus laipsnio sandauga. atvejis $8$, tada reikia apskaičiuoti daugianarį pagal dešimtainės aritmetikos taisykles:
$X_8 = A_n \cdot 8^(n-1) + A_(n-1) \cdot 8^(n-2) + A_(n-2) \cdot 8^(n-3) + ... + A_2 \cdot 8^1 + A_1 \cdot 8^0 $
2 pav. 2 lentelė
2 pavyzdys
Konvertuokite skaičių $75013_8$ į dešimtainę skaičių sistemą.
Sprendimas. Naudodami pateiktą bazinio $8$ laipsnių $2$ lentelę, skaičių pavaizduojame kaip daugianarį:
75013_8 USD = 7\ctaškas 8^4 + 5 \ctaškas 8^3 + 0 \ctaškas 8^2 + 1 \ctaškas 8^1 + 3 \ctaškas 8^0 = 31243_(10)$
Norėdami konvertuoti skaičių iš šešioliktainės į dešimtainę, turite jį pavaizduoti kaip daugianarį, kurio kiekvienas elementas yra pavaizduotas kaip skaičiaus skaitmens ir atitinkamos bazinio skaičiaus galios sandauga, šiuo atveju $16 $, ir tada reikia apskaičiuoti daugianarį pagal dešimtainės aritmetikos taisykles:
$X_(16) = A_n \ctaškas 16^(n-1) + A_(n-1) \ctaškas 16^(n-2) + A_(n-2) \ctaškas 16^(n-3) + . .. + A_2 \cdot 16^1 + A_1 \cdot 16^0$
3 pav. 3 lentelė
3 pavyzdys
Konvertuokite skaičių $FFA2_(16)$ į dešimtainę skaičių sistemą.
Sprendimas. Naudodami pateiktą bazinio $8$ laipsnių lentelę $3$, skaičių pavaizduojame kaip daugianarį:
FFA2_(16) USD
4 pavyzdys
Konvertuokite skaičių $22_(10)$ į dvejetainę skaičių sistemą.
Sprendimas:
4 pav.
$22_{10} = 10110_2$
5 pavyzdys
Konvertuokite skaičių $571_(10)$ į aštuntainių skaičių sistemą.
Sprendimas:
5 pav.
$571_{10} = 1073_8$
6 pavyzdys
Konvertuokite skaičių $7467_(10)$ į šešioliktainę skaičių sistemą.
Sprendimas:
6 pav.
7467 $_(10) = 1D2B_(16) $
Norint paversti tinkamą trupmeną iš dešimtainės skaičių sistemos į ne dešimtainę skaičių sistemą, reikia nuosekliai padauginti trupmeninę konvertuojamo skaičiaus dalį iš sistemos, į kurią ją reikia konvertuoti, bazės. Naujoje sistemoje trupmenos bus vaizduojamos kaip visos produktų dalys, pradedant nuo pirmosios.
Pavyzdžiui: $0.3125_((10))$ aštuntainių skaičių sistemoje atrodys kaip $0.24_((8))$.
Tokiu atveju galite susidurti su problema, kai baigtinė dešimtainė trupmena gali atitikti begalinę (periodinę) trupmeną ne dešimtainėje skaičių sistemoje. Tokiu atveju naujojoje sistemoje vaizduojamos trupmenos skaitmenų skaičius priklausys nuo reikiamo tikslumo. Taip pat reikėtų pažymėti, kad sveikieji skaičiai išlieka sveikaisiais skaičiais, o tinkamos trupmenos išlieka trupmenomis bet kurioje skaičių sistemoje.
7 pav. 4 lentelė
7 pavyzdys
Konvertuokite skaičių $1001011_2$ į aštuntainių skaičių sistemą.
Sprendimas. Naudodami 4 lentelę konvertuojame skaičių iš dvejetainės skaičių sistemos į aštuntainį:
$001 001 011_2 = 113_8$
Šiame straipsnyje papasakosiu kompiuterinių technologijų pagrindus – tai dvejetainė sistema. Tai yra žemiausias lygis, tai yra skaičiai, pagal kuriuos veikia kompiuteris. Ir jūs išmoksite perkelti iš vienos sistemos
1 lentelė – Skaičių vaizdavimas įvairiose sistemose
skaičiavimas (pradžia)
Skaičių sistemos |
||||
Dešimtainė |
Dvejetainis |
aštuntainis |
Šešioliktainis |
BCD |
Norėdami konvertuoti iš dešimtainio į dvejetainį, turite dvi parinktis.
1) Pavyzdžiui, skaičių 37 reikia konvertuoti iš dešimtainės sistemos į dvejetainę sistemą, tada reikia padalyti iš dviejų ir patikrinti likusią padalijimo dalį. Jei liekana yra nelyginė, tada rašome vieną apačioje, o kitas dalybos ciklas eina per lyginį skaičių, jei dalybos liekana yra lyginė, tada rašome nulį. Pabaigoje turite gauti 1. O dabar gautą rezultatą paverčiame dvejetainiu, o skaičius eina iš dešinės į kairę.
Žingsnis po žingsnio: 37 yra nelyginis skaičius, o tai reiškia 1 , tada 36/2 = 18. Skaičius lyginis, o tai reiškia 0. 18/2 = 9 yra nelyginis skaičius, o tai reiškia 1 , tada 8/2 = 4. Skaičius lyginis, skaitykite 0. 4/2 = 2, lyginis skaičius reiškia 0, 2/2 = 1.
Taigi mes gavome numerį. Nepamirškite skaičiuoti iš dešinės į kairę: 100101 – dabar turime skaičių dvejetainėje sistemoje. Paprastai tai rašoma kaip padalijimas stulpelyje, kaip matote toliau pateiktame paveikslėlyje:
2) Bet yra ir antras būdas. Man jis labiau patinka. Perkėlimas iš vienos sistemos į kitą yra toks:
kur ai yra i-tas skaičiaus skaitmuo;
k - skaitmenų skaičius trupmeninėje skaičiaus dalyje;
m - skaitmenų skaičius sveikojoje skaičiaus dalyje;
N yra skaičių sistemos pagrindas.
Skaičių sistemos N bazė rodo, kiek kartų i-ojo skaitmens "svoris" yra didesnis už skaitmens "svorį" (i-1). Sveikoji skaičiaus dalis nuo trupmeninės atskiriama tašku (kableliu).
Sveikoji skaičiaus AN1 dalis su baze N1 konvertuojama į skaičių sistemą su baze N2 nuosekliai padalijus sveikąją skaičiaus AN1 dalį iš bazės N2, parašytos kaip skaičius su baze N1, kol gaunama liekana. Gauta dalis vėl padalijama iš pagrindo N2, ir šis procesas turi kartotis tol, kol dalelė tampa mažesnė už daliklį. Gautos dalybos likučiai ir paskutinė dalis rašomi atvirkštine tvarka, gauta dalijant. Sugeneruotas skaičius bus sveikasis skaičius su baze N2.
Skaičiaus AN1 trupmeninė dalis su baze N1 paverčiama skaičių sistema su baze N2, nuosekliai padauginus trupmeninę skaičiaus AN1 dalį iš bazės N2, parašytos kaip skaičius su baze N1. Kiekvieną kartą dauginant sveikoji sandaugos dalis paimama kaip kitas atitinkamo skaitmens skaitmuo, o likusios trupmeninė dalis laikoma nauja daugyba. Padauginimų skaičius lemia gauto rezultato skaitmenų talpą, reprezentuojančią trupmeninę skaičiaus AN1 dalį N2 skaičių sistemoje. Trupmeninė skaičiaus dalis dažnai verčiama netiksliai.
Padarykime tai su pavyzdžiu:
37 dešimtainis turi būti konvertuojamas į dvejetainį. Dirbkime su laipsniais:
2 0 = 1
2 1 = 2
2 2 = 4
2 3 = 8
2 4 = 16
2 5 = 32
2 6 = 64
2 7 = 128
2 8 = 256
2 9 = 512
2 10 = 1024 ir taip toliau... iki begalybės
Tai reiškia: 37 - 32 = 5. 5 - 4 = 1. Dvejetainis atsakymas yra toks: 100101.
Paverskime skaičių 658 iš dešimtainio į dvejetainį:
658-512=146
146-128=18
18-16=2. Dvejetainėje sistemoje skaičius atrodys taip: 1010010010.
Jei reikia konvertuoti iš dešimtainio į aštuntainį, pirmiausia turite konvertuoti į dvejetainį skaičių, o tada konvertuoti iš dvejetainio į aštuntainį. Tai yra, taip lengviau, nors galite išversti iš karto. Naudodami algoritmą, panašų į konvertavimo į dvejetainį algoritmą, žr. aukščiau.
Jei jums reikia konvertuoti iš dešimtainės į šešioliktainę, pirmiausia turite konvertuoti į dvejetainę, o tada konvertuoti iš dvejetainės į šešioliktainę. Tai yra, taip lengviau, nors galite išversti iš karto. Naudodami algoritmą, panašų į konvertavimo į dvejetainį algoritmą, žr. aukščiau.
Norėdami konvertuoti skaičių iš dvejetainio į aštuntainį, turite padalyti dvejetainį skaičių į tris skaičius.
Pavyzdžiui, gautas skaičius 1010010010 yra padalintas į tris skaičius, o padalijimas vyksta iš dešinės į kairę: 1 010 010 010 = 1222. Lentelę žr. pačioje pradžioje.
Norėdami konvertuoti skaičių iš dvejetainio į šešioliktainį, turite jį padalyti į tetradas (po keturias)
10 1001 0010 = 292
Štai keli pavyzdžiai, kuriuos galite peržiūrėti:
Konvertuojama iš dvejetainės į aštuntainę, tada į šešioliktainę, o tada iš dvejetainės į dešimtainę
(2) = 11101110
(8) = 11 101 110 = 276
(16) = 1110 1110 = EE
(10) = 1*128+ 1*64+ 1*32+ 0 +1*8 + 1*4 + 1*2+ 0= 238
3) (8) = 657
Konvertuojama iš šešioliktainės į dvejetainę, tada į aštuntainę, o tada iš dvejetainės į dešimtainę
(16) = 6E8
(2) = 110 1110 1000
(8) = 11 011 101 000 = 2250
(10) = 1*1024+1*512+ 0 +1*128+ 1*64+ 1*32+ 8 = 1768
Paslaugos paskirtis. Paslauga skirta konvertuoti skaičius iš vienos skaičių sistemos į kitą internete. Norėdami tai padaryti, pasirinkite sistemos, iš kurios norite konvertuoti skaičių, bazę. Kableliais galite įvesti ir sveikuosius skaičius, ir skaičius.
Galite įvesti ir sveikuosius skaičius, pavyzdžiui, 34, ir trupmeninius skaičius, pavyzdžiui, 637,333. Trupmeninių skaičių atveju nurodomas vertimo tikslumas po kablelio. Su šiuo skaičiuotuvu taip pat naudojami šie dalykai: Skaičių vaizdavimo būdaiDvejetainis (dvejetainiai) skaičiai - kiekvienas skaitmuo reiškia vieno bito reikšmę (0 arba 1), kairėje visada rašomas reikšmingiausias bitas, po skaičiaus dedama raidė „b“. Kad būtų lengviau suvokti, sąsiuvinius galima atskirti tarpais. Pavyzdžiui, 1010 0101b.Šešioliktainis (šešioliktainiai) skaičiai – kiekviena tetrada vaizduojama vienu simboliu 0...9, A, B, ..., F. Šis vaizdavimas gali būti žymimas įvairiais būdais skaitmenų. Pavyzdžiui, A5h. Programų tekstuose tas pats skaičius gali būti pažymėtas kaip 0xA5 arba 0A5h, priklausomai nuo programavimo kalbos sintaksės. Reikšmingiausio šešioliktainio skaitmens, kurį žymi raidė, kairėje pridedamas priešakinis nulis (0), kad būtų galima atskirti skaičius ir simbolinius pavadinimus. Dešimtainė (dešimtainiai) skaičiai – kiekvienas baitas (žodis, dvigubas žodis) vaizduojamas įprastu skaičiumi, o dešimtainio vaizdavimo ženklas (raidė „d“) paprastai praleidžiamas. Ankstesniuose pavyzdžiuose pateikto baito dešimtainė reikšmė yra 165. Skirtingai nuo dvejetainių ir šešioliktainių ženklų, dešimtainės dalies sunku mintyse nustatyti kiekvieno bito reikšmę, o tai kartais būtina. aštuntainis (aštuontainiai) skaičiai - kiekvienas bitų trigubas (dalyba prasideda nuo mažiausiai reikšmingo) rašomas kaip skaičius nuo 0 iki 7, o pabaigoje yra „o“. Tas pats skaičius būtų parašytas kaip 245o. Aštuontainė sistema yra nepatogi, nes baitas negali būti padalintas po lygiai. Skaičių konvertavimo iš vienos skaičių sistemos į kitą algoritmasVisi dešimtainiai skaičiai konvertuojami į bet kurią kitą skaičių sistemą, skaičių dalijant iš naujos skaičių sistemos pagrindo, kol liekana lieka mažesniu skaičiumi nei naujosios skaičių sistemos bazė. Naujas skaičius rašomas kaip padalijimo likučiai, pradedant nuo paskutinio.Įprastos dešimtainės trupmenos konvertavimas į kitą PSS atliekamas tik trupmeninę skaičiaus dalį padauginus iš naujos skaičių sistemos pagrindo, kol trupmeninėje dalyje liks visi nuliai arba kol pasiekiamas nurodytas vertimo tikslumas. Po kiekvienos daugybos operacijos susidaro vienas naujo skaičiaus skaitmuo, pradedant nuo didžiausio. Netinkamas trupmenų vertimas atliekamas pagal 1 ir 2 taisykles. Sveikoji ir trupmeninė dalys rašomos kartu, atskirtos kableliu. 1 pavyzdys. Norint konvertuoti skaičių iš dvejetainės skaičių sistemos į aštuntainę (šešioliktainę) skaičių sistemą, dvejetainį skaičių nuo kablelio į dešinę ir į kairę reikia padalyti į trijų (šešioliktainių) skaitmenų grupes, papildant išorines grupes. jei reikia, su nuliais. Kiekviena grupė pakeičiama atitinkamu aštuntainiu arba šešioliktainiu skaitmeniu. 2 pavyzdys. 1010111010.1011 = 1.010.111.010.101.1 = 1272.51 8 Konvertuodami į šešioliktainę sistemą, turite padalyti skaičių į keturių skaitmenų dalis, vadovaudamiesi tomis pačiomis taisyklėmis. Skaičių iš 2, 8 ir 16 konvertavimas į dešimtainę sistemą atliekamas skaičių suskaidant į atskirus ir padauginus iš sistemos bazės (iš kurios verčiamas skaičius), pakeltos iki laipsnio, atitinkančio jo eilės numerį konvertuojamas skaičius. Šiuo atveju skaičiai numeruojami kairėje nuo kablelio (pirmasis skaičius yra 0) didėjant, o dešinėje - mažėjant (t. y. su neigiamu ženklu). Gauti rezultatai sumuojami. 4 pavyzdys. 1010010.101 2 = 1,2 6 +0,2 5 +1,2 4 +0,2 3 +0,2 2 +1,2 1 +0,2 0 + 1,2 -1 +0,2 - 2 + 1 2 -3 = Dar kartą pakartojame skaičių konvertavimo iš vienos skaičių sistemos į kitą PSS algoritmą
Skaičių sistemos atitikmenų lentelė:
Lentelė konvertavimui į aštuntainių skaičių sistemą |