Dvejetainių skaičių padalijimas

Autorius: Roger Morrison
Kūrybos Data: 6 Rugsėjo Mėn 2021
Atnaujinimo Data: 1 Liepos Mėn 2024
Anonim
Programavimas visiškai žaliems: skaičių sistemos (binary, 10tainė, 16liktainė)
Video.: Programavimas visiškai žaliems: skaičių sistemos (binary, 10tainė, 16liktainė)

Turinys

Dvejetainių skaičių padalijimas gali būti išspręstas naudojant ilgą dalijimą, patogų metodą, kaip išmokyti procedūrą ar parašyti paprastą kompiuterinę programą. Be to, pakartotinio atimimo komplemento metodas siūlo metodą, kuris jums gali būti nežinomas, nors iš tikrųjų nėra dažnai naudojamas programuojant. Mašinų kalbos paprastai naudoja vertinimo algoritmą, kad padidintų efektyvumą, tačiau čia jie nėra aprašyti.

Žengti

1 metodas iš 2: naudojant ilgą dalijimąsi

  1. Vėl pereikite dešimtainį ilgąjį padalijimą. Jei praėjo ilgas laiko tarpas, naudodamas įprastus dešimtainius (pagrindo 10) skaičius, dar kartą peržiūrėkite jo bazę, kad rastumėte 172 ÷ 4 problemą. Priešingu atveju praleiskite tai ir pereikite prie kito žingsnio, kad sužinotumėte šią dvejetainio proceso procedūrą. numeriai.
    • Tai dividendas yra padalintas iš daliklisir atsakymas yra koeficientas.
    • Palyginkite daliklį su pirmuoju dividendo skaitmeniu. Jei daliklis yra didžiausias skaičius, vis pridėkite skaitmenų prie dividendo, kol daliklis bus mažiausias skaičius. (Pvz., Skaičiuojant 172 ÷ 4, palyginame 4 ir 1, nustatome, kad 4> 1, o tada lyginame 4 su 17.)
    • Užrašykite pirmąjį koeficiento skaičių virš paskutinio palyginimui sunaudoto dividendo skaitmens. Palyginę 4 ir 17, pastebime, kad 4 keturis kartus pereina į 17, todėl 4 parašome kaip pirmąjį daliklio skaitmenį, viršijantį 7.
    • Padauginkite ir atimkite, kad rastumėte likutį. Padauginkite daliklį iš daliklio, šiuo atveju 4 x 4 = 16. Parašykite 16 žemiau 17, tada atlikite 17 - 16 likusią dalį, 1.
    • Pakartokite. Vėlgi mes lyginame daliklį 4 su sekančiu skaičiumi 1, pastebime, kad 4> 1, ir „sumažiname“ kitą dividendų skaičių, vietoj to, kad lygintume 4 su 12. 4 eina į 12 kartų tris kartus be likutinės dalies, todėl galime parašyti 3 kaip kitą dalmens skaitmenį. Atsakymas yra 43.
  2. Sukurkite dvejetainį ilgo padalijimo sąranką. Tarkime, kad kaip pavyzdį naudojame 10101 ÷ 11. Parašykite tai kaip ilgą dalybą, 10101 kaip dividendą ir 11 kaip daliklį. Palikite viršuje, kad parašytumėte koeficientą, o žemiau parašykite skaičiavimus.
  3. Palyginkite daliklį su pirmuoju dividendo skaitmeniu. Tai veikia taip pat, kaip dešimtainis ilgasis dalijimas, bet iš tikrųjų yra daug lengviau dvejetainiu pavidalu. Arba negalite padalyti skaičiaus iš daliklio (0), arba daliklis telpa vieną kartą (1):
    • 11> 1, taigi 11 „netelpa“ 1. Pirmuoju dalmens skaičiumi (virš pirmojo dividendo skaitmens) parašykite 0.
  4. Dabar paimkite kitą skaitmenį ir kartokite, kol gausite 1. Štai keli kiti pavyzdžio žingsniai:
    • Sumažinkite kitą dividendų skaičių. 11> 10. Dalyvyje užrašykite 0.
    • Sumažinkite kitą skaitmenį. 11 101. Dalijime užrašykite 1.
  5. Nustatykite likusius. kaip dešimtainio ilgio dalyboje, ką tik rastą skaitmenį (1) padauginame iš daliklio (11), o rezultatą žemiau mūsų dividendo užrašome tiese su ką tik apskaičiuotu skaitmeniu. Dvejetainiu pavidalu tai galime padaryti greičiau, nes 1 x daliklis visada lygus dalikliui:
    • Parašykite daliklį žemiau dividendo. Čia mes parašome tai kaip 11 po pirmaisiais trim dividendų skaičiais (101).
    • Apskaičiuokite 101 - 11 likusiems, 10. Peržiūrėkite, kaip atimti dvejetainius skaičius, jei neprisimenate.
  6. Tęskite tol, kol problema bus išspręsta. Atneškite kitą skaitiklį iš daliklio į likusį žemiau, kad gautumėte 100. Kadangi 11 100, jūs rašote 1 kaip kitą koeficiento skaitmenį. Toliau spręskite problemą kaip ir anksčiau:
    • Parašykite 11 žemiau 100 ir atimkite šiuos skaičius, kad gautumėte 1.
    • Sumažinkite paskutinį dividendų skaičių ir gausite 11 už atsakymą.
    • 11 = 11, todėl užrašykite 1 kaip paskutinį dalmens (atsakymo) skaitmenį.
    • Liekanos nėra, todėl problema išspręsta. Atsakymas yra 00111, arba paprasčiau, 111.
  7. Jei reikia, pridėkite radix tašką. Kartais rezultatas nėra sveikasis skaičius. Jei po paskutinio skaitmens vis tiek turite likusią dalį, prie dividendų pridėkite „.0“ ir „“. į savo koeficientą, kad galėtumėte sumažinti dar vieną skaičių ir judėti toliau. Darykite tai tol, kol pasieksite norimą tikslumą, tada galutinai atsakykite. Ant popieriaus galite suapvalinti praleidę 0 arba, jei paskutinis skaitmuo yra 1, pašalinkite jį ir pridėkite 1 prie paskutinio skaitmens. Programuodami naudokite vieną iš standartinių apvalinimo algoritmų, kad išvengtumėte klaidų konvertuodami tarp dvejetainių ir dešimtainių skaičių.
    • Skirstant dvejetainius skaičius, dažnai kartojami kableliai, dažniau nei skaičiai po kablelio.
    • Tai nurodo bendresnis terminas „radix point“, su kuriuo susiduriate bet kurioje skaičių sistemoje, nes su „dešimtainiu tašku“ susiduriate tik dešimtainės sistemos viduje.

2 metodas iš 2: naudojant komplemento metodą

  1. Suprask pagrindinę idėją. Vienas iš būdų išspręsti padalijimus - bet kuriai bazei - yra nuolat atimti daliklį iš dividendo, tada likusią dalį, skaičiuojant, kiek kartų galite tai padaryti, kol gausite neigiamą skaičių. Štai 10 bazės pavyzdys, problema 26 ÷ 7:
    • 26 - 7 = 19 (atimta 1 kartą)
    • 19–7 = 12 (atimta 2 kartus)
    • 12–7 = 5 (atimta 3 kartus)
    • 5 - 7 = -2. Neigiamas skaičius, taigi vėl aukštyn. Atsakymas yra 3, o likusi dalis - 5. Atkreipkite dėmesį, kad šis metodas neatsižvelgia į dešimtaines dešimtaines dalis.
  2. Išmokite atimti naudodami priedus. Nors aukščiau nurodytą metodą galite lengvai pritaikyti dvejetainiams skaičiams, mes taip pat galime naudoti efektyvesnį metodą, kuris sutaupys jūsų laiko programuojant dvejetainius padalijimus. Tai vadinama dvejetainio komplemento metodu. Štai bazė, apskaičiuojant 111–111 (įsitikinkite, kad abu skaičiai yra vienodo ilgio):
    • Raskite antrojo termino papildinį, atimdami kiekvieną skaitmenį iš 1. Jūs galite lengvai tai padaryti dvejetainiais skaičiais, nustatydami kas 1 į 0 ir kas 0 į 1. Mūsų pavyzdyje 011 tampa 100.
    • Prie rezultato pridėkite 1: 100 + 1 = 101. Tai vadinama 2 papildymu. Dabar mes laikysime atimtis kaip priedą. Esmė ta, kad baigus procedūrą problemą traktuojame taip, lyg pridėtume neigiamą skaičių, o ne atimtume teigiamą skaičių.
    • Pridėkite rezultatą prie pirmojo termino. Išspręskite papildymą: 111 + 101 = 1100.
    • Pirmąjį skaitmenį praleiskite (nešiojamąjį skaitmenį). Pašalinkite pirmąjį skaitmenį iš atsakymo, kad gautumėte galutinį rezultatą. 1100 → 100.
  3. Sujunkite dvi aukščiau pateiktas sąvokas. Dabar jūs žinote, kaip veikia atimties metodas sprendžiant dalijimo sumas ir 2 papildymo metodas sprendžiant atimties sumas.Galite sujungti abu į vieną dalijimo sumų sprendimo būdą, atlikdami toliau nurodytus veiksmus. Jei norite, prieš tęsdami galite pabandyti tai išsiaiškinti patys.
  4. Iš dividendų atimkite daliklį, pridedant 2 papildymą. Padarykime problemą: 100011 ÷ 000101. Pirmasis žingsnis yra išspręsti 100011 - 000101, naudojant 2 papildymo metodą, kad jis susumuotų:
    • 2 papildymas 000101 = 111010 + 1 = 111011
    • 100011 + 111011 = 1011110
    • Pirmąjį skaitmenį (nešiojimą) praleiskite → 011110
  5. Pridėkite 1 prie koeficiento. Kompiuterinėje programoje tai yra taškas, kai padidinate koeficientą 1. Ant popieriaus padarykite užrašą kažkur kampe, kur jis nesugadins likusio jūsų darbo. Vieną kartą sėkmingai atlikome atimimą, taigi iki šiol koeficientas yra 1.
  6. Pakartokite tai atimdami daliklį iš likusio. Paskutinio skaičiavimo rezultatas yra likusi dalis, likusi dalikliui vieną kartą „įėjus“. Toliau pridėkite daliklio 2 papildinį ir atimkite nešimą. Kiekvieną kartą prie koeficiento pridėkite 1 ir tęskite, kol gausite likusią dalį, lygią jūsų mažesniam dalikliui:
    • 011110 + 111011 = 1011001 → 011001 (koeficientas 1 + 1 = 10)
    • 011001 + 111011 = 1010100 → 010100 (koeficientas 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 yra mažiau nei 101, todėl dabar galime sustoti. Dalmuo 111 yra atsakymas į dalinę problemą. Likusi dalis yra galutinis mūsų atimties rezultatas, šiuo atveju 0 (be poilsio).

Patarimai

  • Prieš taikant dvejetainį skaičiavimą mašinų instrukcijų rinkiniui, reikia atsižvelgti į padidinimo, sumažinimo ar kaupimo instrukcijas.
  • 2 komplemento atimties metodas neveikia, jei skaičiai susideda iš skirtingo skaitmenų skaičiaus. Norėdami tai išspręsti, prie mažesnio skaičiaus pridėkite papildomų nulių.
  • Prieš atlikdami skaičiavimą, ignoruokite pasirašytą skaitmenį pasirašytais dvejetainiais skaičiais, išskyrus bandydami nustatyti, ar atsakymas teigiamas, ar neigiamas.