Împărțirea binară poate fi rezolvată folosind metoda împărțirii lungi, care este o metodă care vă poate învăța singuri procesul de împărțire, precum și să creați programe de calculator simple. În plus, metodele complementare de scădere iterativă pot oferi abordări cu care s-ar putea să nu fiți familiarizați, chiar dacă nu sunt utilizate în mod obișnuit pentru programare. Limbajele mașinii folosesc de obicei algoritmi de aproximare pentru a fi mai eficiente, dar acest lucru nu este descris în acest articol.
Etapa
Metoda 1 din 2: Utilizarea Diviziei lungi
Pasul 1. Reînvățați divizarea lungă zecimală
Dacă nu ați folosit o diviziune lungă în sistemul numeric zecimal obișnuit (baza zece) de mult timp, revizuiți elementele de bază folosind exemplul de problemă 172 împărțit la 4. În caz contrar, săriți peste acest pas și mergeți direct la pasul următor pentru a explora un proces similar cu numere binare.
- Numărător impartit de numitor, iar rezultatul este coeficient.
- Comparați numitorul cu primul număr din numărător. Dacă numitorul este mai mare, continuați să adăugați numere la numărător până când numitorul este mai mic. (De exemplu, dacă calculăm 172 împărțit la 4, comparăm 4 cu 1, știm că 4 este mai mare decât 1, deci procedați la compararea 4 cu 17.)
- Scrieți prima cifră a coeficientului deasupra ultimului numărător utilizat în comparație. Când comparăm 4 cu 17, vedem că 4 este acoperit de 17 de patru ori, deci scriem 4 ca primul număr al coeficientului, peste 7.
- Înmulțiți și scădeți pentru a obține restul. Înmulțiți coeficientul cu numitorul, ceea ce înseamnă 4 × 4 = 16. Scrieți 16 sub 17, apoi scădeți 17 cu 16 pentru a obține restul, care este 1.
- Repetați procesul. Comparăm din nou numitorul, care este 4, cu următorul număr, care este 1, observăm că 4 este mai mare decât 1, apoi „scăzem” următorul număr din numărător, continuăm comparând 4 cu 12. Vedem că 4 este acoperit de 12 de trei ori fără rest, așa că scriem 3 ca următorul număr al coeficientului. Răspunsul este 43.
Pasul 2. Pregătiți o problemă de divizare lungă în binar
Să luăm 10101 11. Scrieți ca o problemă pentru împărțirea lungă, folosind 10101 ca numărător și 11 ca numitor. Lăsați spațiu deasupra acestuia ca loc pentru a scrie coeficientul și sub el ca loc pentru a scrie calcule.
Pasul 3. Comparați numitorul cu prima cifră a numărătorului
Funcționează la fel ca împărțirea lungă în zecimal, dar este de fapt mult mai ușor în sistemul de numere binare. În binar există doar două opțiuni, fie nu puteți împărți numărul la numitor (adică 0), fie numitorul este inclus o singură dată (adică 1):
11> 1, deci 11 nu este „acoperit de” 1. Scrieți numărul 0 ca primul număr al coeficientului (deasupra primei cifre a numărătorului)
Pasul 4. Lucrați la următorul număr și repetați până obțineți numărul 1
Următorii pași din exemplul nostru sunt:
- Derivați următorul număr de la numărător. 11> 10. Scrieți 0 în coeficient.
- Coborâți următorul număr. 11 <101. Scrieți numărul 1 în coeficient.
Pasul 5. Găsiți restul diviziunii
Ca și în cazul zecimalelor de diviziune lungă, înmulțiți numărul pe care tocmai l-am obținut (1) cu numitorul (11), apoi scrieți rezultatul sub numărător paralel cu numărul pe care tocmai l-am calculat. În sistemul de numere binare, putem rezuma acest proces, deoarece 1 x numitorul este întotdeauna același cu numitorul:
- Scrieți numitorul sub numărător. Aici, scrieți 11 paralele cu primele trei cifre ale numărătorului (101).
- Numărați 101 - 11 pentru a obține restul diviziunii, care este 10. Vedeți cum puteți scădea numerele binare dacă trebuie să reînvățați.
Pasul 6. Repetați până când problema este rezolvată
Micșorați numărul următor de la numitor la restul diviziunii pentru a obține 100. Din moment ce 11 <100, scrieți 1 ca următor număr din diviziune. Continuați calculul ca înainte:
- Scrie 11 sub 100 și apoi scade pentru a obține 1.
- Coborâți ultima cifră a numărătorului la 11.
- 11 = 11, deci scrieți 1 ca ultima cifră a coeficientului (răspuns).
- Deoarece nu există rest, calculul este complet. Raspunsul este 00111sau doar 111.
Pasul 7. Adăugați puncte radix dacă este necesar
Uneori, rezultatul unui calcul nu este un număr întreg. Dacă mai aveți o diviziune după ce ați utilizat ultima cifră, adăugați „.0” la numerator și „.” la coeficient, astfel încât să puteți obține încă un număr și să continuați calculul. Repetați până atingeți precizia dorită, apoi rotunjiți rezultatul. Pe hârtie, puteți rotunji în jos eliminând ultimul 0, sau dacă ultimul este 1, aruncați-l și adăugați ultimul număr la 1. În programare, urmați unul dintre mai mulți algoritmi standard de rotunjire pentru a evita erorile la conversia numerelor binare la zecimal și invers.
- Împărțirea binară are ca rezultat adesea părți fracționate repetate, mai des decât același proces din sistemul zecimal.
- Acest lucru se numește mai frecvent „punctul radix”, care se aplică oricărei baze, deoarece termenul „punct zecimal” se aplică numai în sistemul zecimal.
Metoda 2 din 2: Utilizarea metodei complementare
Pasul 1. Înțelegeți conceptul de bază
O modalitate de a rezolva problema divizării - pe orice bază - este să scădem în continuare numitorul de la numărător, apoi restul, numărând de câte ori acest proces poate fi repetat înainte de a obține un număr negativ. Următorul exemplu este un calcul în baza zece, calculând 26 7:
- 26 - 7 = 19 (scade o dată)
- 19 - 7 = 12 (2)
- 12 - 7 = 5 (3)
- 5 - 7 = -2. Numere negative, deci fă un pas înapoi. Rezultatul este 3, iar restul este împărțit la 5. Rețineți că această metodă nu calculează partea fracționată a răspunsului.
Pasul 2. Aflați cum puteți scădea cu complementele
În timp ce puteți utiliza metoda de mai sus într-un sistem binar cu ușurință, putem reduce și utilizarea unei metode mai eficiente, care economisește timp la programarea computerului pentru a face divizarea binară. Aceasta este scăderea cu metoda complementului în binar. Iată elementele de bază, calculând 111 - 011 (asigurați-vă că cele două numere au aceeași lungime):
- Găsiți complementul celui de-al doilea număr, scăzând fiecare cifră din 1. Acest pas este ușor de realizat în sistemul binar schimbând fiecare 1 la 0 și fiecare 0 la 1. În acest exemplu, 011 la 100.
- Adăugați 1 la rezultatul calculului: 100 + 1 = 101. Acest număr se numește complementul lui two, deci scăderea poate fi rezolvată ca adunare. În esență, rezultatul acestui calcul este ca și cum adăugăm numere negative și nu scădem numere pozitive, după ce acest proces este complet.
- Adăugați rezultatul la primul număr. Scrieți și rezolvați problema adunării: 111 + 101 = 1100.
- Eliminați mai multe numere. Eliminați primul număr din rezultatul calculului pentru a obține rezultatul final. 1100 → 100.
Pasul 3. Combinați cele două concepte descrise mai sus
Acum știți metoda de scădere pentru rezolvarea problemelor de divizare, precum și metoda complementului celor două pentru rezolvarea problemelor de scădere. Folosind pașii de mai jos, puteți combina cele două într-o singură metodă pentru a rezolva problema divizării. Dacă doriți, încercați să rezolvați singur înainte de a continua.
Pasul 4. Se scade numitorul din numărător, adăugând complementul celor doi
Să lucrăm la problema 100011 000101. Primul pas este să rezolvăm 100011 - 000101, folosind metoda complementului celor doi pentru a transforma acest calcul într-o sumă:
- Complementul doi al lui 000101 = 111010 + 1 = 111011
- 100011 + 111011 = 1011110
- Eliminați numerele în exces → 011110
Pasul 5. Adăugați 1 la rezultatul împărțirii
Într-un program de computer, aici adăugați 1 la coeficient. Pe hârtie, notați în colțuri, astfel încât să nu se amestece cu alte lucrări. Am reușit să scădem o dată, astfel încât rezultatul împărțirii de până acum este 1.
Pasul 6. Repetați procesul scăzând numitorul din restul calculului
Rezultatul ultimului nostru calcul este restul diviziunii după ce numitorul este „acoperit” o dată. Continuați să adăugați complementul celor doi ai numitorului la fiecare repetare și să eliminați cifre suplimentare. Adăugați 1 la coeficientul de pe fiecare iterație, repetând până când obțineți restul calculului egal sau mai mic decât numitorul:
- 011110 + 111011 = 1011001 → 011001 (coeficient 1 + 1 = 10)
- 0110001 + 111011 = 1010100 → 010100 (coeficient 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 este mai mic decât 101, așa că ne oprim aici. Răspunsul la acest proces de divizare este 111. În timp ce restul divizării este rezultatul final al procesului de scădere, în acest caz 0 (fără rest).
sfaturi
- Instrucțiunile pentru creșterea (adăugarea 1), scăderea (scăderea 1) sau eliminarea din stivă (stiva pop) ar trebui luate în considerare înainte de a aplica matematica binară într-un set de instrucțiuni ale mașinii.
- Metoda complementului celor două pentru scăderea nu va funcționa dacă numerele au un număr diferit de cifre. Pentru a remedia acest lucru, adăugați un zero la începutul numărului pentru un număr mai mic.
- Ignorați numerele negative în numerele binare negative înainte de a calcula, cu excepția pentru a determina dacă răspunsul este pozitiv sau negativ.