Binaarjaotust saab lahendada pika jagamise meetodiga, mis on meetod, mis õpetab teile jagamisprotsessi nii ise kui ka lihtsate arvutiprogrammide loomist. Lisaks võivad iteratiivse lahutamise täiendavad meetodid pakkuda lähenemisviise, mida te ehk ei tunne, kuigi neid programmeerimisel tavaliselt ei kasutata. Masinakeeled kasutavad tõhususe saavutamiseks tavaliselt lähendusalgoritme, kuid seda pole selles artiklis kirjeldatud.
Samm
Meetod 1: 2: Long Divisioni kasutamine
Samm 1. Õpi uuesti kümnendkoha pikkade jagamist
Kui te pole pikka aega tavalist kümnendarvu (põhikümne) süsteemi pikka jagamist kasutanud, vaadake põhitõdesid uuesti, kasutades näiteülesannet 172 jagatuna 4 -ga. Vastasel korral jätke see samm vahele ja minge uurimiseks otse järgmise sammu juurde sarnane protsess kahendarvudega.
- Lugeja jagatuna nimetaja, ja tulemus on jagatis.
- Võrrelge nimetajat lugeja esimese numbriga. Kui nimetaja on suurem, jätkake lugeja numbrite lisamist, kuni nimetaja on väiksem. (Näiteks kui arvutame 172 jagatuna 4 -ga, võrdleme 4 -ga 1 -ga, teame, et 4 on suurem kui 1, seega jätkake 4 -ga 17 -ga.)
- Kirjutage jagatise esimene number võrdluses viimase kasutatud lugeja kohale. Kui võrrelda 4 17 -ga, näeme, et 4 on kaetud 17 -ga neli korda, seega kirjutame 4 jagatise esimese numbrina, üle 7.
- Ülejäänud saamiseks saate korrutada ja lahutada. Korrutage jagatis nimetajaga, mis tähendab 4 × 4 = 16. Kirjutage 16 alla 17, seejärel lahutage 17 16 -ga, et saada ülejäänud osa, mis on 1.
- Korrake protsessi. Võrdleme uuesti nimetajat, mis on 4, järgmise numbriga, mis on 1, märkame, et 4 on suurem kui 1, seejärel "lahutame" lugeja järgmise numbri, jätkame 4 võrdlusega 12. Näeme, et 4 on kaetud kolm korda 12 -ga ilma jäägita, seega kirjutame jagatise järgmise numbrina 3. Vastus on 43.
Etapp 2. Valmistage binaarülesandes ette pika jagamise ülesanne
Võtame 10101 11. Kirjutage pika jagamise ülesandena, kasutades lugejaks 10101 ja nimetajaks 11. Jätke selle kohale ruumi jagatise kirjutamiseks ja selle alla arvutuste kirjutamiseks.
Samm 3. Võrrelge nimetajat lugeja esimese numbriga
See toimib samamoodi nagu pikk jagamine kümnendkohas, kuid tegelikult on see palju lihtsam binaarses arvsüsteemis. Binaarversioonis on ainult kaks võimalust, kas te ei saa numbrit nimetajaga jagada (see tähendab 0) või nimetaja lisatakse ainult üks kord (see tähendab 1):
11> 1, seega 11 ei ole "kaetud" 1. Kirjutage number 0 jagatise esimeseks numbriks (lugeja esimese numbri kohale)
Samm 4. Töötage järgmise numbriga ja korrake seda, kuni saate numbri 1
Meie näites on järgmised sammud järgmised.
- Tuletage lugejast järgmine number. 11> 10. Kirjutage jagatis 0.
- Langetage järgmine number. 11 <101. Kirjutage jagatis number 1.
Samm 5. Leidke ülejäänud jaotus
Nagu pikkade jagamise kümnendkohtade puhul, korrutage äsja saadud arv (1) nimetajaga (11), seejärel kirjutage tulemus lugeja alla paralleelselt arvuga, mille me just arvutasime. Kahendarvu süsteemis saame selle protsessi kokku võtta, sest 1 x nimetaja on alati sama, mis nimetaja:
- Kirjutage nimetaja lugeja alla. Siin kirjutage lugeja paralleelselt lugeja kolme esimese numbriga (101).
- Loendage 101 - 11, et saada ülejäänud jaotus, mis on 10. Vaadake, kuidas binaarnumbreid lahutada, kui peate uuesti õppima.
Samm 6. Korrake, kuni probleem on lahendatud
Vähendage nimetaja järgmise arvu jagunemise ülejäänud osani, et saada 100. Kuna 11 <100, kirjutage jagunemise järgmiseks numbriks 1. Jätkake arvutamist nagu varem:
- Kirjutage 11 alla 100 ja lahutage, et saada 1.
- Langetage lugeja viimane number 11 -ni.
- 11 = 11, seega kirjutage jagatise (vastuse) viimaseks numbriks 1.
- Kuna jääki pole, on arvutus lõpule viidud. Vastus on 00111või ainult 111.
Samm 7. Vajadusel lisage radix -punktid
Mõnikord ei ole arvutuse tulemus täisarv. Kui pärast viimase numbri kasutamist on teil veel jagunemist, lisage lugejale ".0" ja "." jagatisele, nii et saate ikkagi tuletada veel ühe numbri ja jätkata arvutamist. Korrake, kuni saavutate soovitud täpsuse, seejärel ümardage tulemus. Paberil saate ümardada allapoole, eemaldades viimase 0 või kui viimane on 1, visake see kõrvale ja lisage viimane viimane number 1 -le. Programmeerimisel järgige ühte mitmest tavalisest ümardamisalgoritmist, et vältida vigu kahendarvude teisendamisel kümnendkohani ja vastupidi.
- Binaarse jagamise tulemuseks on sageli korduvad murdosad, sagedamini kui sama protsess kümnendsüsteemis.
- Seda nimetatakse sagedamini "raadiopunktiks", mis kehtib mis tahes aluse kohta, sest mõiste "kümnendkoht" kehtib ainult kümnendsüsteemis.
Meetod 2/2: täiendava meetodi kasutamine
Samm 1. Mõistke põhikontseptsiooni
Üks võimalus jagamisprobleemi lahendamiseks - ükskõik mis alusel - on lahutada lugeja nimetaja ja seejärel ülejäänud, lugedes mitu korda seda protsessi korrata saab enne negatiivse arvu saamist. Järgmine näide on arvutus kümnes baasis, arvutades 26 7:
- 26 - 7 = 19 (lahutage 1 kord)
- 19 - 7 = 12 (2)
- 12 - 7 = 5 (3)
- 5 - 7 = -2. Negatiivsed numbrid, nii et astuge samm tagasi. Tulemuseks on 3 ja ülejäänud jagatakse 5 -ga. Pange tähele, et see meetod ei arvuta vastuse murdosa.
Samm 2. Õppige täienditega lahutama
Kuigi saate ülaltoodud meetodit binaarsüsteemis hõlpsalt kasutada, saame vähendada ka tõhusama meetodi kasutamist, mis säästab aega arvuti programmeerimisel binaarse jagamise tegemiseks. See on lahutamine komplementmeetodiga binaarses versioonis. Siin on põhitõed, arvutades 111–011 (veenduge, et need kaks numbrit on sama pikkusega):
- Leidke teise numbri üks täiend, lahutades iga numbri 1. Seda sammu on binaarsüsteemis lihtne teha, muutes iga 1 kuni 0 ja iga 0 kuni 1. Selles näites 011 kuni 100.
- Arvutamise tulemusele lisage 1: 100 + 1 = 101. Seda arvu nimetatakse kahe täienduseks, nii et lahutamist saab lahendada liitmisena. Sisuliselt on selle arvutuse tulemus selline, et pärast selle protsessi lõppu lisame negatiivsed numbrid ja ei lahuta positiivseid numbreid.
- Lisage tulemus esimesele numbrile. Kirjutage ja lahendage liitmisülesanne: 111 + 101 = 1100.
- Eemaldage rohkem numbreid. Lõpptulemuse saamiseks eemaldage arvutustulemusest esimene number. 1100 → 100.
Samm 3. Ühendage kaks ülalkirjeldatud mõistet
Nüüd teate lahutamismeetodit jagamisülesannete lahendamiseks, samuti nende kahe komplemendi meetodit lahutamisülesannete lahendamiseks. Kasutades allolevaid samme, saate jagamisprobleemi lahendamiseks need kaks ühendada üheks meetodiks. Kui soovite, proovige see enne jätkamist ise lahendada.
Samm 4. Lahutage nimetaja lugejast, lisades nende kahe komplemendi
Töötame probleemi 100011 000101 kallal. Esimene samm on lahendada 100011 - 000101, kasutades nende kahe komplemendi meetodit, et muuta see arvutus summaks:
- Kahe komplement 000101 = 111010 + 1 = 111011
- 100011 + 111011 = 1011110
- Eemaldage liigsed numbrid → 011110
Samm 5. Lisage jagamise tulemusele 1
Arvutiprogrammis lisatakse siin jagatisele 1. Paberile tehke nurkadesse märkmeid, et need ei segaks end teiste töödega. Meil õnnestus üks kord lahutada, seega on senise jagamise tulemus 1.
Samm 6. Korrake protsessi, lahutades ülejäänud nimistus nimetaja
Meie viimase arvutuse tulemus on ülejäänud jaotus pärast seda, kui nimetaja on üks kord "kaetud". Jätkake iga korduse korral nimetaja kahe täiendaja lisamist ja eemaldage lisanumbrid. Lisage igale iteratsioonile jagatisele 1, korrates seni, kuni ülejäänud arvutus on võrdne nimetajaga või sellest väiksem:
- 011110 + 111011 = 1011001 → 011001 (jagatis 1 + 1 = 10)
- 0110001 + 111011 = 1010100 → 010100 (jagatis 10 + 1 = 11)
- 010100 + 111011 = 1001111 → 001111 (11+1=100)
- 001111 + 111011 = 1001010 → 001010 (100+1=101)
- 001010 + 111011 = 10000101 → 0000101 (101+1=110)
- 0000101 + 111011 = 1000000 → 000000 (110+1=111)
- 0 on väiksem kui 101, seega peatume siin. Selle jaotusprotsessi vastus on 111. Kui ülejäänud jaotus on lahutamisprotsessi lõpptulemus, siis antud juhul 0 (jääki pole).
Näpunäiteid
- Enne binaarse matemaatika rakendamist masina käsukomplektis tuleks kaaluda juhiseid tõstmiseks (1 lisamine), langetamiseks (1 lahutamine) või virnast eemaldamiseks (pop -stack).
- Kahe täiendamise meetod lahutamiseks ei tööta, kui numbrid sisaldavad erinevat arvu numbreid. Selle parandamiseks lisage väiksema arvu jaoks numbri algusesse null.
- Enne arvutamist ignoreerige negatiivsete kahendarvude negatiivseid numbreid, välja arvatud selleks, et teha kindlaks, kas vastus on positiivne või negatiivne.