Тема 3. Аритметични операции с числа в различни бройни системи


І. Смятане в двоична бройна система (двоична аритметика)

 

Събиране, изваждане, умножение и деление на двоични числа

Познаването на бройните системи изисква и познаването на правилата за смятане с естествени числа. Добре са ни известни правилата за смятане в десетична бройна система.

Операциите (действията) с двоични числа се извършват по правила, подобни на тези за десетичните числа.

1. Събиране на двоични числа

Събирането на две цели положителни числа, записани в двоична система, извършваме по аналогия със събирането в десетична система – чрез събиране на едноименните единици, означени със съответните цифри, с евентуално получаване на “едно наум”, т.е. на една единица от по-висок ред, която пренасяме към съответните единици. И тъй като едноименните цифри в позиционния запис се означават само с цифрите 0 и 1, ще започнем с тяхното събиране.

Имаме очевидните равенства

0+1=1+0=1 и 1+1=2=102

които можем да запишем във вид на следната таблица за събиране в двоична система:

 

Тази таблица ще прилагаме за намиране двоичния запис на сумата на две числа, записани в двоична система.

Започваме с най-дясната позиция, т.е. с цифрите от първи разред. Ако в двете събираеми имаме цифри 0 и 0, в резултата пишем цифрата 0. Ако цифрите са съответно 0 и 1 или 1 и 0, ще запишем цифрата 1. Ако имаме цифри 1 и 1, в същата позиция ще запишем цифрата 0 и тъй като получаваме “едно наум”, правим пренос, като в съседната вляво позиция прибавяме една единица и продължаваме определянето на следващите цифри само с тези операции.

За пояснение ще разгледаме следния пример за събиране:

Тук най-десните цифри (цифрите от първи разред – цифрите в първа позиция на двете събираеми) са съответно 1 и 0 и на тях съгласно таблицата за събиране отговаря цифрата 1. Следващите две цифри са 1 и 1 – пишем 0 и правим пренос наляво с една позиция, имаме “едно наум”. В третата позиция имаме цифрите 0 и 0, на които отговаря цифрата 0, но тук е пренесена една единица, следователно имаме съпоставяне на цифрата 0 с цифрата 1  - на тези цифри ще отговаря съгласно таблицата цифрата 1, която пишем в резултата като цифра от трети разред. В четвърта позиция имаме цифрите 1 и 0 – пишем 1, в петата позиция на цифрите 0 и 1 също отговаря 1. В шестата позиция се намират цифрите 1 и 1. На тях отговаря цифрата 0 и правим пренос на една единица наляво. Там първото събираемо има за последна цифра цифрата 1, а второто събираемо няма цифра, но за пълнота можем да си мислим (и пишем) цифрата 0 и на тях ще съответства цифрата 1, а на нея и пренесената единица ще отговаря 0 и ще имаме последен пренос, който направо отразяваме в резултата с най-лява цифра 1.

И така: 11010112+1100102=100111012

Проверка в десетична система:

11010112=26+25+23+2+1=107

1100102=25+24+2=50

100111012=27+24+23+22+1=157

Очевидно 107+50=15710

Събирането на повече от две числа се основава на последователното събиране на числата две по две и може да се извършва едновременно, както в следния пример:

 

т.е. 111012+101112+111112=10100112

Съберете следните двоични числа:

1001012+101102

10111012+1101012

1112+10112+11012


2. Изваждане на двоични числа

Действието изваждане е обратно на събирането –разликата на умаляемото и умалителя, събрана с умалителя, трябва да дава умаляемото.

Оттук следва, че ще прилагаме същата таблица за събиране и ще се налага да правим пренос, но в обратен ред – това ще бъде предварителен пренос отляво надясно и ще означава, че една единица от даден ред се разлага на две единици от съседния по-нисък ред. Следващият пример илюстрира изваждането на две числа:

Тук с точки над цифрите сме означили промяната в единиците поради пренос надясно. Тъй като във втората позиция на двоичния запис на умаляемото цифрата е 0 – няма единица от първи ред, пренасяме наличната единица от втори ред, т.е. числото 22, от трета позиция във втора, където тя се разглежда като две единици от първи ред – 22=21+21, и тъй като изваждаме едната от тях, остава само една и в резултата на втора позиция пишем цифрата 1. С подобни разсъждения намираме и останалите цифри:

1101012 - 11102 = 101112

тъй като  1101012=11102+101112

Извършете изваждането:

1 задача 1011012-101002

2 задача 11111012-1011112

3 задача 1010012-1101112

4 задача 1100112-111112

5 задача 10001112-1110112

Задачи за домашна работа:

 

Извършете изваждането:

1 задача 1002-112

2 задача 1000012-101102

3 задача 101001012-111112

4 задача 101011012-10101112

5 задача 100000002-11111112

Извършете събирането:

6 задача 1011112+1010102

7 задача 11012+1111012

8 задача 1012+11112+111012

 

3. Умножение на двоични числа

2.

 

Умножаването на две числа в двоична бройна система се основава на умножаване на числата 0 и 1 и получаване на резултата посредством събиране с подходящо подреждане на позициите по същия начин, както в десетичната бройна система.

Имаме следната таблица за умножение в двоична система

 

в която са използвани основните равенства: 0.1=1.0=0.0=0 и 1.1=1

Ето пример за умножаване на две числа:

т.е. 10011011112.1001102=1011100011110102

Проверка в десетична система:

Имаме  10011011112=29+26+25+23+22+21+1 = 512+64+32+8+4+2+1=623 (10)

1001102=25+22+21=32+4+2=38(10)

1011100011110102=214+212+211+210+26+25+24+23+2=16384+4096+2048+1024+64+58=23674(10)

и още 623.38=4894+1869=23674(10)

Умножете следните двоични числа:

1011011.1011

1111101.110

1101.101010

111111.10101

 

4. Деление на двоични числа

Както знаем, да разделим естественото число а на естественото число b ще рече да намерим тяхното частно q и остатъка r, т.е. да намерим единствените цели числа q и r, за които a=bq+r,  0≤r<b.

Тук r се нарича още остатък на а по модул b, а самото деление е известно и като “деление с остатък”.

Когато числата a и b са записани в двоична бройна система, делението с остатък се извършва по същия начин, както при десетичната система – алгоритъмът не зависи от бройната система, но се осъществява технически в нея посредством междинни остатъци, към които приписваме отдясно по една цифра, започвайки отляво надясно.

Това се вижда от следващия пример (с подробности за междинните резултати):

Частното от делението на 1110012 с 1102 е равно на 10012 а остатъкът е 112.

Следователно имаме равенството:

1110012=1102.10012+112

Разбира се, в някои случаи остатъкът на а по модул b е равен на 0 – тогава а се дели на b (b дели a)

Разделете: 1010102:1112

Тук остатъкът е нула, следователно естественото число 1010102 се дели на естественото число 1112 и имаме 1010102=1112.1102

 

Извършете делението:

10010:110

111001:110

1000100:1100

 

Домашна работа:

Извършете делението в двоична бройна система:

1001000:1001

1000000:100000

1100000:1000

1010101:1110

Извършете умножението в двоична бройна система:

1010101.11

1001010.1101

100.1100

110010.1010

ІІ. Смятане с числа, записани в р-ична бройна система

Нека са дадени две естествени числа M и N в р-ична позиционна бройна система.

Основните аритметични операции се извършват много просто. За целта е необходимо да разполагаме с две таблици - за събиране и умножение. За десетичната бройна система те се известни от началните класове, а за двоична бройна система, както разбрахме са следните:


                             

Аналогични таблици могат да се съставят и за другите бройни системи. Добре известна е следната процедура за събиране на две естествени числа

 M=ana n-1…a1a0(p) и N=bnb n-1 …b1b0(p) (ако двете числа са с различен брой цифри, тогава по-малкото от тях допълваме отпред с нули):

1. Записваме числата едно под друго (b0 под a0, b1 под a1 и т.н.).

2. Намираме в таблицата за събиране сумата a0+b0. Ако a0+b0<p, тогава c0= a0+b0 e цифра – записваме я под a0 и b0.

В противен случай a0+b0<p+p и затова намираме c0= a0+b0-p,

което е цифра и я записваме под a0 и b0,

а над а1 и b1 пишем 1, наричаме тази единица пренос и я бележим с q1.

3. Нека k приема последователно стойностите 1, 2, …, n.

За всяко k правим следното: с помощта на таблицата намираме сумата ak+bk+qk. Ако ak+bk+qk<p, получили сме цифрата

ck – записваме я под аk и bk и смятаме преноса qk+1 за нула. В противен случай намираме цифрата ck=ak+bk+qk-p, записваме я под ak и bk, а преноса qk+1=1 записваме над ak+1 bk+1.

4. Последният пренос qn+1 се записва пред cn само ако е 1.

Например  в десетична система тази процедура, приложена към числата 187624 и 92505 дава 280129 или към числата 9264 и 6108 дава 15372.

Аналогично в двоична система получаваме:

1101111+100100=10010011

111111+1=1000000

По аналогичен начин се обобщава действието изваждане като обратно на действието събиране.

Тук вместо преноса наляво с прибавяне “едно наум”, в случай че изваждаме по-голяма цифра от по-малка, ще имаме пренос надясно - една единица от по-висок ред ще разлагаме на p единици от съседния по-нисък ред.

Правилото се отнася до намиране на p-ичния запис на разликата а-b, ако а>b. Ако a<b, намираме разликата b-a и вземаме предвид равенството a-b=-(b-a).

Действието умножение се осъществява чрез таблицата за умножение на числата 0, 1, ..., p-1

10111011 х 101 = 1110100111

Действието деление с остатък изисква възстановяване на цифрите, които бихме получили при умножаване, както това е ясно при делението в десетична бройна система.

Събирането на повече от две числа може да стане по двойки, но при малка модификация на процедурата за събиране това може да стане и наведнъж (преносите в този случай могат да са по-големи от 1).

Не е нужно да правим специални таблици за изваждането и делението, тъй като можем да си послужим с таблиците за събиране и умножение.

Как се сравняват естествените числа, представени в позиционна бройна система?

Нека двете сравнявани числа нямат водещи нули. Ако едното от тях има повече цифри, то очевидно е по-голямо. Нека сега двете числа имат равен брой цифри. Започваме отляво надясно да сравняваме съответните цифри на двете числа. Ако всички цифри съвпадат, двете числа са равни. При първото срещане  на неравни цифри – това число, в което е по-голямата цифра е по-голямо.

Задачи:

1. Направете таблица за събиране на числа, представени в:

а/ троична позиционна бройна система

б/ шестнадесетична позиционна бройна система

2. Направете таблица за умножение на числа, представени в:

а/ троична позиционна бройна система

б/ осмична позиционна бройна система

3. Извършете означените действия:

9FA471 (16) - ABC8 (16)

 

Задачи за домашна работа:

1. Към числото  2008 прибавете числото на Вашия номер в клас. Полученото ново число превърнете от ДЕСЕТИЧНА в ДВОИЧНА бройна система.

2. Зад числото 1010(2) последователно изпишете числото 1 толкова пъти, колкото е числото на Вашия номер в клас, ако той е едноцифрен или числото 0 толкова пъти, колкото е сумата от двете числа на Вашия номер в клас, ако той е двуцифрен. Полученото ново число превърнете от двоична в десетична бройна система.

3. Извършете означените действия:

10011010(2) +AF(16)

9FA471(16) - ABC8(16)

11111111(2):101(2)

26534(10) +10000101(2)

11101101(2) -1011111(2)

10011010(2) +11110100 (2)

предишна тема            следваща тема

 

изтегли PDF