Автор:
Mark Sanchez
Дата На Създаване:
2 Януари 2021
Дата На Актуализиране:
1 Юли 2024
![Adding two 16-bit binary numbers](https://i.ytimg.com/vi/2gbcp7P8cbs/hqdefault.jpg)
Съдържание
Двоичните числа могат да бъдат разделени на колони, за да се разбере по -добре самият процес или да се напише проста компютърна програма. Можете също да използвате метода на комплемента, който рядко се използва в програмирането. Обикновено машинните езици използват алгоритъм за оценяване, за да бъдат по -ефективни, но това не е за тази статия.
Стъпки
Метод 1 от 2: Дълго разделяне
1 Разделете по колона две десетични числа. Ако сте забравили дългото деление, разделете две десетични (основни 10) числа: 172 ÷ 4. Ако дългото деление е чудесно, преминете към следващата стъпка, за да научите как да разделяте двоични числа.
- Дивидент разделена на разделител и се оказва частни.
- Сравнете делителя с първата цифра на дивидента. Ако делителят е по -голям от тази цифра, сравнете делителя с две цифри на дивидента и така нататък, докато делителят е по -малък от въпросното число. В нашия пример сравнете 4 и 1, обърнете внимание, че 4> 1 и след това сравнете 4 със 17.
- Напишете първата цифра на частното под делителя. Сравнявайки 4 и 17, ще видите, че 17 ÷ 4 = 4 с остатък, така че напишете 4 като първата цифра на частното под делителя (4).
- Умножете и извадете, за да намерите остатъка. Умножете първата цифра на частното с делителя; в нашия пример: 4 x 4 = 16. Напишете 16 под 17, след което извадете 17 - 16, за да намерите остатъка от 1.
- Повторете сравнението. Сравнете делителя 4 с остатъка от 1, имайте предвид, че 4> 1, и "пренесете" следващата цифра от дивидента, за да сравните 4 с 12. Тъй като 12 ÷ 4 = 3 без остатък, така че напишете 3 като втората цифра на коефициента. Окончателният отговор е 43.
2 Колоната разделя две двоични числа. Например 10101 ÷ 11. Тук 10101 е дивидентът, а 11 е делителят. Оставете достатъчно място за изчисления.
3 Сравнете делителя с първата цифра на дивидента. В случай на двоични числа, това е по -лесно да се направи, отколкото с десетични числа: или числото не се дели на делителя и пишем 0, или е разделено и пишем 1.
- 11> 1, така че 1 не може да бъде разделено на 11. Напишете 0 като първата цифра на частното (под делителя).
4 Продължавайте да сравнявате числата на делителя, докато не получите 1. В нашия пример:
- Сравнете делителя с двете цифри на дивидента. 11> 10. Напишете 0 като втора цифра на частното.
- Сравнете делителя с трите цифри на дивидента. 11 101. Напишете 1 като третата цифра на частното.
5 Изчислете остатъка. Умножете намерената цифра (1) с делителя (11) и запишете резултата под дивидента (а именно под съответните цифри). Имайте предвид, че умножаването на 1 с делител винаги води до делител.
- Напишете делителя под дивидента. В нашия пример напишете 11 под първите три цифри (101) на дивидента.
- Извадете 101 - 11, за да получите остатъка от 10. Ако не помните как да извадите двоични числа, прочетете тази статия.
6 Повторете описаните стъпки, докато не разрешите проблема. Добавете следващата цифра от дивидента към остатъка, за да получите 100. От 11 100 напишете 1 като четвърта цифра на частното. Допълнителни изчисления:
- напишете 11 под 100 и извадете, за да получите остатък от 1;
- добавете последната цифра от дивидента към остатъка, за да получите 11;
- 11 = 11, така че напишете 1 като последната цифра на частното.
- Няма остатък, така че проблемът е решен. Отговор: 00111 или само 111.
7 Добавете десетична точка (ако е необходимо). Понякога резултатът не е цяло число. Ако след като сте използвали последната цифра на дивидента, получавате остатък, добавете „, 0“ към дивидента и „,“ към коефициента, за да „разрушите“ следващата цифра и да продължите изчислението. Повторете този процес, докато получите желания резултат, след което закръглете отговора си. За да закръглите резултата си, отървете се от последната 0 или ако последната цифра е 1, пуснете я и добавете 1 към новата последна цифра. При програмиране следвайте един от стандартните алгоритми за закръгляване, за да избегнете грешки при преобразуването между двоични и десетични числа.
- Разделянето на две двоични числа може да доведе до повтаряща се дробна част; това се случва по -често, отколкото при разделяне на десетични числа.
- Моля, обърнете внимание, че десетичната запетая се използва не само в десетична, но и в двоична нотация.
Метод 2 от 2: Добавки
1 Разберете основните принципи. За да разделите две числа (десетично и двоично), можете да извадите делителя от делителя и след това последователно да извадите делителя от остатъците, докато получите отрицателно число; в този случай трябва да преброите колко изваждания са извършени. Например, изчислете 26 ÷ 7:
- 26 - 7 = 19 (1 изваждане)
- 19 - 7 = 12 (2)
- 12 - 7 = 5 (3)
- 5-7 = -2. Отрицателно число, така че не е нужно да изваждате допълнително. Отговор: 3 с остатък от 5. Обърнете внимание, че този метод не изчислява дробната част от отговора.
2 Разберете основите на метода на добавяне. Горният метод може да се приложи към двоични числа или можете да използвате по -ефективен метод, който спестява време при програмиране на разделянето на двоични числа. Този метод се нарича метод на комплемента. Например, извадете 111 - 011 (и двете числа трябва да имат еднакъв брой цифри):
- Намерете допълнението към второто число. За да направите това, извадете всяка цифра от това число от 1. В двоичен код просто заменете 1 с 0 и 0 с 1. В нашия пример 011 става 100.
- Добавете 1: 100 + 1 = 101 към вашия резултат. Този процес се нарича допълване на две и ви позволява да замените изваждането с добавяне. По принцип този метод е, че добавяте отрицателно число, вместо да изваждате положително.
- Добавете резултата към първото число. Запишете и изчислете операцията на събиране: 111 + 101 = 1100.
- Пуснете първата цифра от резултата си, за да получите окончателния отговор: 1100 → 100.
3 Комбинирайте двата метода, описани по -горе. Първият метод е методът на последователно изваждане, а вторият е методът на допълване на двете. Тези методи могат да бъдат комбинирани в един, за да се използват за разделяне на числата (процесът на комбиниране на методи е описан по -долу). Ако искате, опитайте се да разберете как да комбинирате двата метода сами.
4 Извадете делителя от дивидента, като замените изваждането с допълване на две. Например: 100011 ÷ 000101.Първо, превърнете изваждането 100011 - 000101 в добавяне, като използвате допълнение на две:
- Допълнение на две: 000101 = 111010 + 1 = 111011
- Допълнение: 100011 + 111011 = 1011110
- Отървете се от първата цифра: 011110
5 Добавете 1 към частното. В компютърна програма това е низ, където коефициентът се увеличава с единица. Направете бележка на хартия, за да избегнете объркване. Успешно сте извадили веднъж, така че коефициентът е 1 в този момент.
6 Повторете описания процес. За да направите това, извадете делителя от остатъка. Остатъкът е резултат от последното изчисление. Заменете операцията за изваждане с добавяне: добавете делителя на комплемента на двама към остатъка и след това се отървете от първата цифра на резултата. След всяко изваждане добавете 1 към частното. Повторете горния процес, докато остатъкът е равен или по -малък от делителя:
- 011110 + 111011 = 1011001 → 011001 (част 1 + 1 = 10)
- 011001 + 111011 = 1010100 → 010100 (част 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 е по -малко от 101, така че няма нужда да се изчислява допълнително. Частни 111 е крайният резултат от операцията по разделяне. Остатъкът е крайният резултат от операцията за изваждане; в нашия пример е 0 (без остатък).
Съвети
- Игнорирайте бита за знак в подписани двоични числа, освен ако не трябва да знаете дали резултатът е положителен или отрицателен.
- Методът за допълване на двете не се прилага, ако числата съдържат различен брой цифри. В този случай добавете съответното число 0 към по -ниското число (вляво).
- Инструкциите за увеличаване, намаляване или изскачане на стека трябва да бъдат взети предвид преди прилагане на двоични операции към машинни инструкции.