Binární dělení lze vyřešit pomocí metody dlouhého dělení, což je metoda, která vás může naučit proces dělení sami a také vytváření jednoduchých počítačových programů. Doplňkové metody iterativního odčítání mohou navíc poskytnout přístupy, které možná neznáte, přestože se pro programování běžně nepoužívají. Strojové jazyky obvykle používají k větší účinnosti algoritmy aproximace, ale v tomto článku to není popsáno.
Krok
Metoda 1 ze 2: Použití dlouhé divize
Krok 1. Znovu se naučte desetinné dělení
Pokud jste dlouho nepoužívali dlouhé dělení v soustavě pravidelných desetinných čísel (základní desítka), zopakujte si základy pomocí příkladového problému 172 děleného 4. Jinak tento krok přeskočte a přejděte rovnou k dalšímu kroku podobný proces s binárními čísly.
- Čitatel děleno jmenovatel, a výsledek je kvocient.
- Porovnejte jmenovatele s prvním číslem v čitateli. Pokud je jmenovatel větší, pokračujte v přidávání čísel do čitatele, dokud nebude jmenovatel menší. (Pokud například vypočítáme 172 děleno 4, porovnáme 4 s 1, víme, že 4 je větší než 1, takže pokračujte ke srovnání 4 s 17.)
- Napište první číslici kvocientu nad posledního čitatele použitého při srovnání. Když porovnáme 4 se 17, vidíme, že 4 je čtyřikrát pokryto 17, takže napíšeme 4 jako první číslo kvocientu nad 7.
- Znásobením a odečtením získáte zbytek. Vynásobte kvocient jmenovatelem, což znamená 4 × 4 = 16. Napište 16 pod 17, poté odečtěte 17 od 16, abyste získali zbytek, což je 1.
- Opakujte postup. Znovu porovnáme jmenovatele, který je 4, s dalším číslem, které je 1, všimněte si, že 4 je větší než 1, pak „odečtěte“další číslo od čitatele, pokračujeme porovnáním 4 s 12. Vidíme, že 4 je pokryta 12 třikrát beze zbytku, zapíšeme tedy 3 jako další číslo kvocientu. Odpověď je 43.
Krok 2. Připravte si problém dlouhého dělení v binárním formátu
Vezměme 10101 11. Zapište jako problém pro dlouhé dělení, použijte 10101 jako čitatele a 11 jako jmenovatele. Ponechejte nad ním místo jako místo pro zápis kvocientu a pod ním místo pro psaní výpočtů.
Krok 3. Porovnejte jmenovatele s první číslicí čitatele
Funguje to stejně jako dlouhé dělení v desítkové soustavě, ale ve skutečnosti je to v binární číselné soustavě mnohem jednodušší. V binárním formátu existují pouze dvě možnosti, buď nemůžete číslo dělit jmenovatelem (což znamená 0), nebo je jmenovatel zahrnut pouze jednou (což znamená 1):
11> 1, takže 11 není „pokryto“1. Napište číslo 0 jako první číslo kvocientu (nad první číslici čitatele)
Krok 4. Zapracujte na dalším čísle a opakujte, dokud nezískáte číslo 1
Následují další kroky v našem příkladu:
- Odvozte další číslo od čitatele. 11> 10. Do kvocientu napište 0.
- Snižte další číslo. 11 <101. Napište číslo 1 do kvocientu.
Krok 5. Najděte zbývající část divize
Stejně jako u desetinných míst s delením vynásobte číslo, které jsme právě dostali (1), jmenovatelem (11), poté zapište výsledek pod čitatele rovnoběžně s číslem, které jsme právě vypočítali. V soustavě binárních čísel můžeme tento proces shrnout, protože 1 x jmenovatel je vždy stejný jako jmenovatel:
- Napište jmenovatele pod čitatele. Zde napište 11 rovnoběžně s prvními třemi číslicemi čitatele (101).
- Počítejte 101 - 11, abyste získali zbytek dělení, což je 10. Podívejte se, jak odečíst binární čísla, pokud se potřebujete znovu naučit.
Krok 6. Opakujte, dokud nebude problém vyřešen
Snížením dalšího čísla ze jmenovatele na zbytek divize získáte 100. Od 11 <100 zapište 1 jako další číslo v divizi. Pokračujte ve výpočtu jako dříve:
- Napište 11 pod 100 a poté odečtěte, abyste získali 1.
- Snižte poslední číslici čitatele na 11.
- 11 = 11, zapište tedy 1 jako poslední číslici kvocientu (odpověď).
- Protože není žádný zbytek, je výpočet dokončen. Odpověď je 00111, nebo pouze 111.
Krok 7. V případě potřeby přidejte body radix
Někdy není výsledek výpočtu celé číslo. Pokud vám po použití poslední číslice ještě zbývá dělení, přidejte do čitatele „.0“a „.“kvocientu, takže můžete ještě odvodit jedno další číslo a pokračovat ve výpočtu. Opakujte, dokud nedosáhnete požadované přesnosti, pak výsledek zaokrouhlete. Na papíře můžete zaokrouhlit dolů odebráním poslední 0, nebo pokud je poslední 1, zrušte jej a přidejte nejnovější poslední číslo k 1. Při programování se řiďte jedním z několika standardních algoritmů zaokrouhlování, abyste se vyhnuli chybám při převodu binárních čísel na desítkové a naopak.
- Binární dělení má často za následek opakování zlomkových částí, častěji než stejný proces v desítkové soustavě.
- Běžněji se tomu říká „radixový bod“, který platí pro jakýkoli základ, protože výraz „desetinná čárka“platí pouze v desítkové soustavě.
Metoda 2 ze 2: Použití doplňkové metody
Krok 1. Pochopte základní koncept
Jedním ze způsobů, jak vyřešit problém dělení - na jakémkoli základě - je stále odečítat jmenovatele od čitatele, poté zbytek, počítat, kolikrát se tento proces může opakovat, než se získá záporné číslo. Následující příklad je výpočet v základně deset s výpočtem 26 7:
- 26 - 7 = 19 (odečtěte 1krát)
- 19 - 7 = 12 (2)
- 12 - 7 = 5 (3)
- 5 - 7 = -2. Záporná čísla, udělejte tedy krok zpět. Výsledkem jsou 3 a zbytek se dělí 5. Všimněte si, že tato metoda nepočítá zlomkovou část odpovědi.
Krok 2. Zjistěte, jak odečíst pomocí doplňků
I když můžete výše uvedenou metodu použít v binárním systému snadno, můžeme také omezit používání efektivnější metody, která šetří čas při programování počítače na binární dělení. Toto je odčítání s metodou komplementu v binárním formátu. Zde jsou základy výpočtu 111 - 011 (ujistěte se, že obě čísla mají stejnou délku):
- Najděte druhý doplněk pro druhé číslo odečtením každé číslice od 1. Tento krok lze v binárním systému snadno provést změnou každé 1 na 0 a každých 0 až 1. V tomto případě 011 až 100.
- K výsledku výpočtu přičtěte 1: 100 + 1 = 101. Toto číslo se nazývá dvojkový doplněk, takže odčítání lze řešit jako sčítání. Výsledkem tohoto výpočtu je v podstatě to, že po dokončení tohoto procesu přidáme záporná čísla a neodečteme kladná čísla.
- Výsledek přidejte k prvnímu číslu. Napište a vyřešte problém sčítání: 111 + 101 = 1100.
- Odstraňte další čísla. Odebráním prvního čísla z výsledku výpočtu získáte konečný výsledek. 1100 → 100.
Krok 3. Zkombinujte dva výše popsané koncepty
Nyní znáte metodu odčítání pro řešení dělících úloh, stejně jako metodu dvojice doplňků pro řešení odčítacích problémů. Pomocí níže uvedených kroků můžete tyto dva spojit do jedné metody k vyřešení problému rozdělení. Pokud chcete, zkuste to vyřešit sami, než budete pokračovat.
Krok 4. Odečtěte jmenovatele od čitatele a přidejte jeho doplněk
Pojďme pracovat na problému 100011 000101. Prvním krokem je vyřešit 100011 - 000101 pomocí metody komplementu těchto dvou, abychom tento výpočet proměnili v součet:
- Dvojkový doplněk 000101 = 111010 + 1 = 111011
- 100011 + 111011 = 1011110
- Odstraňte přebytečná čísla → 011110
Krok 5. Přidejte 1 k výsledku rozdělení
V počítačovém programu to je místo, kde přidáte 1 do kvocientu. Na papír si udělejte poznámky do rohů, aby se nezamíchaly s jinou prací. Podařilo se nám odečíst jednou, takže dosavadní výsledek rozdělení je 1.
Krok 6. Opakujte postup odečtením jmenovatele od zbytku výpočtu
Výsledkem našeho posledního výpočtu je zbytek dělení poté, co je jmenovatel jednou „zakryt“. Při každém opakování přidávejte doplněk jmenovatele těchto dvou a odstraňujte další číslice. Přidejte 1 k podílu při každé iteraci a opakujte, dokud nezískáte zbytek výpočtu stejný nebo menší než jmenovatel:
- 011110 + 111011 = 1011001 → 011001 (kvocient 1 + 1 = 10)
- 0110001 + 111011 = 1010100 → 010100 (kvocient 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 je méně než 101, takže se zde zastavujeme. Odpověď na tento proces rozdělení je 111. Zatímco zbytek dělení je konečným výsledkem procesu odčítání, v tomto případě 0 (žádný zbytek).
Tipy
- Pokyny pro zvýšení (přidání 1), snížení (odečtení 1) nebo odebrání ze zásobníku (pop stack) by měly být zváženy před použitím binární matematiky v sadě strojových instrukcí.
- Metoda doplňování těchto dvou pro odčítání nebude fungovat, pokud čísla mají jiný počet číslic. Chcete -li to opravit, přidejte nulu na začátek čísla pro menší číslo.
- Ignorujte záporná čísla v záporných binárních číslech před výpočtem, kromě určení, zda je odpověď kladná nebo záporná.