Numbrisüsteemid. Ülekandmine ühest süsteemist teise. Arvude teisendamine erinevatesse arvusüsteemidesse lahendusega

Kahendarvusüsteemiga puutume kokku arvutidistsipliinide õppimisel. Lõppude lõpuks ehitatakse selle süsteemi alusel protsessor ja teatud tüüpi krüpteerimine. Kümnendarvu kirjutamiseks kahendsüsteemis ja vastupidi on olemas spetsiaalsed algoritmid. Kui teate süsteemi ülesehitamise põhimõtet, pole selles tegutsemine keeruline.

Nullide ja ühtede süsteemi konstrueerimise põhimõte

Kahendarvusüsteem on üles ehitatud kahe numbri abil: null ja üks. Miks just need numbrid? See on tingitud protsessoris kasutatavate signaalide koostamise põhimõttest. Madalaimal tasemel on signaalil ainult kaks väärtust: false ja true. Seetõttu oli tavaks tähistada signaali puudumist "vale" nulliga ja selle olemasolu "tõene" ühega. Seda kombinatsiooni on tehniliselt lihtne rakendada. Arvud kahendsüsteemis moodustatakse samamoodi nagu kümnendsüsteemis. Kui number jõuab ülempiirini, nullitakse see ja lisatakse uus number. Seda põhimõtet kasutatakse kümnendsüsteemis kümnest läbi liikumiseks. Seega koosnevad numbrid nullide ja ühtede kombinatsioonidest ning seda kombinatsiooni nimetatakse kahendarvusüsteemiks.

Numbri salvestamine süsteemi

Kümnendkohas

Binaarses vormis

Kümnendkohas

Binaarses vormis

Kuidas kirjutada kahendarvu kümnendarvuna?

On võrguteenuseid, mis teisendavad numbreid kahendsüsteem ja vastupidi, aga parem on seda ise teha. Tõlkimisel tähistatakse kahendsüsteemi alaindeksiga 2, näiteks 101 2. Iga numbrit mis tahes süsteemis saab esitada arvude summana, näiteks: 1428 = 1000 + 400 + 20 + 8 - kümnendsüsteemis. Arv on esitatud ka kahendarvuna. Võtame suvaline arv 101 ja kaaluge seda. Sellel on 3 numbrit, seega järjestame arvu järgmiselt: 101 2 =1×2 2 +0×2 1 +1×2 0 =4+1=5 10, kus indeks 10 näitab kümnendsüsteem.

Kuidas kirjutada algarvu kahendarvuna?

Väga lihtne on teisendada kahendarvusüsteemi, jagades arvu kahega. On vaja jagada, kuni on võimalik seda täielikult täita. Näiteks võtame arvu 871. Alustame jagamist, kirjutades kindlasti ülejäänu üles:

871:2=435 (ülejäänud 1)

435:2=217 (ülejäänud 1)

217:2=108 (ülejäänud 1)

Vastus kirjutatakse saadud jääkide järgi lõpust algusesse: 871 10 =101100111 2. Arvutuste õigsust saate kontrollida eelnevalt kirjeldatud pöördtõlke abil.

Miks on vaja tõlkereegleid teada?

Kahendarvusüsteemi kasutatakse enamikes mikroprotsessorite elektroonika, andmete kodeerimise, edastamise ja krüpteerimisega seotud distsipliinides. erinevaid suundi programmeerimine. Mis tahes süsteemist binaarsüsteemi tõlkimise põhitõdede tundmine aitab programmeerijal arendada erinevaid mikroskeeme ning juhtida protsessori ja muude sarnaste süsteemide tööd programmiliselt. Samuti on kahendarvusüsteem vajalik krüpteeritud kanalite kaudu andmepakettide edastamise meetodite juurutamiseks ja nende põhjal klient-server tarkvaraprojektide loomiseks. Kooli informaatikakursusel on edaspidi programmeerimise õppimiseks ja lihtsate programmide loomise algmaterjaliks kahendsüsteemi teisendamise põhitõed ja vastupidi.

Arvude teisendamine ühest arvusüsteemist teise on masinaritmeetika oluline osa. Vaatleme tõlkimise põhireegleid.

1. Tõlkimiseks kahendnumber kümnendkohana on vaja see kirjutada polünoomi kujul, mis koosneb arvu numbrite ja 2 vastava astme korrutistest, ning arvutada see kümnendsüsteemi aritmeetika reeglite järgi:

Tõlkimisel on mugav kasutada kahe astme tabelit:

Tabel 4. 2. astmed

n (kraad)

Näide.

2. Kaheksandarvu teisendamiseks kümnendarvuks on vaja see üles kirjutada polünoomina, mis koosneb arvu numbrite ja arvu 8 vastava astme korrutistest ning arvutada see kümnendkoha reeglite järgi. aritmeetika:

Tõlkimisel on mugav kasutada kaheksa astmete tabelit:

Tabel 5. Arvu 8 astmed

n (kraad)

Näide. Teisendage arv kümnendsüsteemiks.

3. Kuueteistkümnendarvu teisendamiseks kümnendarvuks on vaja see kirjutada polünoomi kujul, mis koosneb arvu numbrite ja arvu 16 vastava astme korrutistest ning arvutada see vastavalt kümnendarvu aritmeetika reeglid:

Tõlkimisel on seda mugav kasutada numbri 16 jõudude välk:

Tabel 6. Arvu 16 astmed

n (kraad)

Näide. Teisendage arv kümnendsüsteemiks.

4. Kümnendarvu teisendamiseks kahendsüsteemiks tuleb see järjestikku jagada 2-ga, kuni jääb 1-st väiksem või sellega võrdne jääk jagamine vastupidises järjekorras.

Näide. Teisendage arv kahendarvusüsteemiks.

5. Kümnendarvu teisendamiseks kaheksandsüsteem see tuleb jagada järjestikku 8-ga, kuni jääb jääk, mis on väiksem või võrdne 7-ga. Arv kaheksandsüsteemis kirjutatakse viimase jagamise tulemuse ja jagamise jääkide numbrite jadana vastupidises järjekorras.

Näide. Teisendage arv kaheksandiksüsteemiks.

6. Kümnendarvu teisendamiseks kuueteistkümnendsüsteem see tuleb jagada järjestikku 16-ga, kuni jääb jääk, mis on väiksem või võrdne 15-ga. Kuueteistkümnendsüsteemis olev arv kirjutatakse viimase jagamise tulemuse ja jagamise jääkide numbrite jadana vastupidises järjekorras.

Näide. Teisendage arv kuueteistkümnendsüsteemiks.

Aritmeetilised operatsioonid positsioonilistes arvusüsteemides tehakse ühe algoritmi abil. Seega toimub kahendarvude liitmine klassikalise “veeru” algoritmi järgi kahekordse ühekordse arvu ülekandmisega järgmisele numbrile.

Vaatleme seda algoritmi kahe kahendarvu 1010101 2 ja 110111 2 näitel:

Lisamise tulemus näeb välja selline: 10001100 2. Kontrollime liitmise tulemust, teisendades kõik arvud kümnendarvude süsteemi:

1010101 2 =85 10 , 110111 2 =55 10 , 10001100 2 =140 10 , 85 10 +55 10 =140 10 .

Arvutiaritmeetika aluseks olev binaarsüsteem on väga tülikas ja inimesele ebamugav. Seetõttu kasutavad programmeerijad kahendarvusüsteemi kahte kordset: kaheksand- ja kuueteistkümnendsüsteemi. Kuueteistkümnendsüsteemi puhul puuduvad araabia numbrid ja numbritena kasutatakse kuut esimest suurtähte Ladina tähestik. Siia on toodud näited naturaalarvude 1 kuni 16 kirjutamise kohta neljas arvusüsteemis Tabel 2.

Tabel 2. Naturaalarvude 1 kuni 16 kirjutamise näited

neljas numbrisüsteemis

Alates 2. tabelid On näha, et kahendsüsteemis erineb teise kaheksa (8 kuni 15) numbrite salvestamine esimese kaheksa (0 kuni 7) salvestamisest selle poolest, et neljandas (paremal) on üksus. ) number. Sellel põhineb binaararvude kaheksandarvudeks teisendamise algoritm "kolmikute kaupa". Selle algoritmi rakendamiseks peate jagama kahendarvu kolmekohalisteks numbriteks (loendades paremalt) ja kirjutama iga kolmiku asemel kaheksandkoha:

10101101 2 → 10 101 101 → 255 8 .

Vasakpoolseim kolmik võib olla mittetäielik (nagu näites täielike kolmikute saamiseks võite lisada puuduvad nullid vasakule);

Kontrollime, kas algoritm on õige:

10101101 2 → 1*2 7 +1*2 5 +1*2 3 +2*2 1 +1*2 0 =173 10 ;

255 8 →2*2 6 +5*2 3 +5*2 0 =173 10 .

Arvude teisendamiseks kaheksandsüsteemist kahendarvuks kasutatakse vastupidist algoritmi: kaheksandnumbrid asendatakse kolmikutega kahendnumbrid(vajadusel lisatakse vasakule puuduvad nullid):

325 8 → 3 2 5 → 11 010 101 → 11010101 2 .

Arvude teisendamiseks kahendarvust kuueteistkümnendsüsteemiks kasutatakse "tetradi järgi" algoritmi. Kahendnumbrite jada jagatakse neljaks ja selle asemel kirjutatakse kuueteistkümnendkohanumbrid:

10101101 2 → 1010 1101 → AD 16.

Pöördalgoritm töötab sarnaselt: kuueteistkümnendarvude asemel asendatakse neljakordsed kahendnumbrid.

Kahendsüsteemi abil on lihtsam teisendada kaheksandarvust kuueteistkümnendsüsteemi ja tagasi:

D5 16 → D 5 → 1101 0101 → 11010101 2 → 11 010 101 → 325 8 .

Erinevatest numbrisüsteemidest numbrite liitmise ülesannete täitmisel tuleb need teisendada üheks numbrisüsteemiks. Parim on kasutada süsteemi, milles tulemus tuleks esitada.

14. ülesanne. (Ülesande A6 demoversioon 2004)

Arvutage summa väärtus kümnendsüsteemis:

10 2 +10 8 +10 16 = ? 10

Lahendus.

Teisendame kõik arvud kümnendarvuks:

10 2 +10 8 +10 16 = (1*2 1 +0*2 0) + (1*8 1 +0*8 0) + (1*16 1 +0*16 0) = 2+8+16=26 10 .

Vastus: 26.

Ülesanne 15.

Leidke summa x+y, kui x=1110101 2 , y=1011011 2 . Väljendage oma vastust kaheksandmärgistuses.

Lahendus.

Leiame summa: 1110101 2 + 1011011 2:

1110101 2 + 1011011 2 = 11010000 2

Teisendame saadud arvu kahendarvusüsteemist kaheksandarvuks:

11 010 000 → 320 8 .

Vastus: 320.

Ülesanne 16.(2004. aasta demo ülesanne B1)

Mõne alusega arvusüsteemis kirjutatakse arv 12 kui 110. Leia see alus.

Lahendus.

Tähistame vajalikku baasi n-ga. Lähtudes numbrite positsioonitähistuses kirjutamise reeglitest 110 n =n 2 +n 1 +0. Koostame võrrandi: n 2 +n=12, leiame juured: n 1 =-4, n 2 =3. Juur n 1 = -4 ei sobi, kuna arvusüsteemi alus on definitsiooni järgi ühest suurem naturaalarv. Kontrollime, kas juur n=3 sobib:

110 3 =1*3 2 +1*3 1 +0=9+3=12 10

Vastus: 3.

Harjutus17 .

Klassis 1111 on 2 tüdrukut ja 1100 2 poissi. Kui palju õpilasi klassis on?

Lahendus.

1111 2 =1*2 3 +1*2 2 +1*2 1 +1*2 0 →8+4+2+1=15 10 .

1100 2 =1*2 3 +1*2 2 +0*2 1 +0*2 0 →8+4=12 10

15 10 +12 10 =27 10

Vastus: Klassis on 27 õpilast.

Harjutus18 .

Aias kasvab 100 viljapuud, millest 33 õunapuud, 22 pirnid, 16 ploomid ja 5 kirsid. Millises arvusüsteemis puid loetakse?

Lahendus.

100 x = 33 x + 22 x + 16 x + 5 x

1*x 2 =3*x 1 +3*x 0 +2*x 1 +2*x 0 + 1*x 1 +6*x 0 +5*x 0

x 2 =3x+3+2x+2+ 1x+6+5

D=b 2 -4ac=36+4*16=36+64=100

x 1,2 =
= (6±10)/2

x 1 = - 2 – ei rahulda ülesande tähendust,

x 2 = 8 – soovitud arvusüsteemi alus.

Vastus: puud loetakse kaheksandsüsteemis.

Harjutus19 .

Eraldades komadega, kasvavas järjekorras, märkige kõik arvusüsteemide alused, milles arv 17 lõpeb 2-ga.

Lahendus.

Arvu viimane number on jääk, kui arv jagatakse numbrisüsteemi baasiga. Kuna 17-2=15, on arvusüsteemide nõutavad alused 15 jagajad, need on: 3, 5, 15.

Kontrollime oma vastust, esindades numbrit 17 vastavates numbrisüsteemides:

1. Järjekordade loendamine erinevates arvusüsteemides.

IN kaasaegne elu me kasutame positsioneerimissüsteemid tähistus ehk süsteemid, milles numbriga tähistatav arv sõltub numbri asukohast numbri tähistuses. Seetõttu räägime edaspidi ainult neist, jättes välja termini "positsiooniline".

Et õppida, kuidas arve ühest süsteemist teise teisendada, mõistame kümnendsüsteemi näitel, kuidas toimub arvude järjestikune salvestamine.

Kuna meil on kümnendarvusüsteem, on meil arvude koostamiseks 10 sümbolit (numbrit). Hakkame lugema: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Numbrid on läbi. Suurendame arvu bitisügavust ja lähtestame madala järgu numbri: 10. Seejärel suurendame uuesti madalat järku numbrit, kuni kõik numbrid on kadunud: 11, 12, 13, 14, 15, 16, 17, 18, 19. Suurendame kõrgema järgu numbrit 1 võrra ja lähtestame madalama järgu numbri: 20. Kui kasutame mõlema numbri jaoks kõiki numbreid (saame numbri 99), suurendame uuesti numbri numbrimahtu ja lähtestame olemasolevad numbrid: 100. Ja nii edasi.

Proovime sama teha 2., 3. ja 5. süsteemis (võtame kasutusele tähistus 2. süsteemi, 3. jne jaoks):

0 0 0 0
1 1 1 1
2 10 2 2
3 11 10 3
4 100 11 4
5 101 12 10
6 110 20 11
7 111 21 12
8 1000 22 13
9 1001 100 14
10 1010 101 20
11 1011 102 21
12 1100 110 22
13 1101 111 23
14 1110 112 24
15 1111 120 30

Kui numbrisüsteemi alus on suurem kui 10, peame sisestama lisamärke, on tavaks sisestada ladina tähestiku tähed. Näiteks 12-kohalise süsteemi jaoks vajame lisaks kümnele numbrile kahte tähte ( ja ):

0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10
11
12 10
13 11
14 12
15 13

2. Teisendamine kümnendarvusüsteemist mis tahes teiseks.

Positiivse täisarvu tõlkimiseks kümnendnumber erineva alusega numbrisüsteemi, peate selle arvu baasiga jagama. Jagage saadud jagatis uuesti alusega ja edasi, kuni jagatis on alusest väiksem. Selle tulemusena kirjutage ühele reale viimane jagatis ja kõik jäägid, alustades viimasest.

Näide 1. Teisendame kümnendarvu 46 kahendarvusüsteemi.

Näide 2. Teisendame kümnendarvu 672 kaheksandsüsteemiks.

Näide 3. Teisendame kümnendarvu 934 kuueteistkümnendsüsteemiks.

3. Suvalise arvusüsteemi teisendamine kümnendarvuks.

Et õppida, kuidas teisendada numbreid mis tahes muust süsteemist kümnendarvuks, analüüsime tavalist kümnendarvu tähistust.
Näiteks kümnendarvuks 325 on 5 ühikut, 2 kümnendikku ja 3 sadu, s.o.

Täpselt sama olukord on ka teistes arvusüsteemides, ainult et me korrutame mitte 10, 100 vms, vaid arvusüsteemi aluse astmetega. Võtame näiteks numbri 1201 kolmekomponentne süsteem Arvestus. Nummerdame numbrid paremalt vasakule alustades nullist ja kujutleme oma arvu numbri ja kolme korrutiste summana arvu numbri astme võrra:

See on meie arvu kümnendmärk, st.

Näide 4. Teisendame kümnendarvude süsteemi kaheksandnumber 511.

Näide 5. Teisendame kümnendarvude süsteemi kuueteistkümnendsüsteem 1151.

4. Teisendamine kahendsüsteemist süsteemi, mille baas on "kahe võimsus" (4, 8, 16 jne).

Binaararvu teisendamiseks arvuks, mille baas on "kahe võimsus", on vaja binaarjada jagada rühmadesse vastavalt numbrite arvule, mis on võrdne astmega paremalt vasakule ja asendada iga rühm vastava numbriga. uus süsteem Arvestus.

Näiteks teisendame kahendarvu 1100001111010110 kaheksandsüsteemiks. Selleks jagame selle 3 märgist koosnevateks rühmadeks, alustades paremalt (alates ), seejärel kasutame vastavustabelit ja asendame iga rühma uue numbriga:

Õppisime 1. sammus vastavustabeli koostamist.

0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7

Need.

Näide 6. Teisendame kahendarvu 1100001111010110 kuueteistkümnendsüsteemiks.

0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

5. Teisendamine süsteemist, mille võimsus on kaks (4, 8, 16 jne) binaarseks.

See tõlge on sarnane eelmisele, tehtud aastal tagakülg: Asendame iga numbri kahendnumbrite rühmaga otsingutabelist.

Näide 7. Teisendame kuueteistkümnendsüsteemi arvu C3A6 kahendarvusüsteemiks.

Selleks asendage iga numbri number vastavustabelist 4-kohalise rühmaga (alates ), täiendades rühma alguses vajadusel nullidega: