✖

Преобразуване на бройни системи

Как да преобразуваме числа от десетична система в други системи и обратно – как да преобразуваме числа от други системи в десетична.

Какво е бройна система

Обикновено работим с десетичната система. Тази система има десет цифри: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Характерно за десетичната система е, че когато някое число, например 57, умножим по десет, се изместваме с един разред – за записа на числото ни трябва с една цифра повече: 570.

Може да имаме и други бройни системи, например осмичната система би съдържала само цифрите 0, …, 7. Изразът 7 + 1 би бил равен на 10, защото в осмичната система нямаме цифра 8. Шестнадесетичната система би имала цифрите 0, 1, … 14, 15. Понякога вместо цифрите, по-големи от 9, използваме букви, така че шестнадесетичната система би имала цифрите 0, …9, A, B, C, D, E, F.

Изненадващо, с други бройни системи се срещаме и в ежедневието. Например времето – секундите и минутите броим в шестдесетична система. Всеки момент от деня можем да запишем като число в шестдесетична система с три цифри. Първата цифра показва часовете, втората минутите, третата секундите. Ако за разделител на цифрите изберем двоеточие, имаме например числото 14:05:59. Забележи, че когато към това време добавим една секунда, не получаваме време 14:05:60, а време 14:06:00 – защото 60 не е валидна цифра на шестдесетичната система.

Преобразуване от десетична в двоична система

Нека имаме числото 70. Искаме да го преобразуваме в двоична система. Принципът е доста прост: числото, което искаме да преобразуваме, делим непрекъснато на две, докато стигнем до нула, като записваме остатъците при цялочисленото деление. Ако искаме да преобразуваме числото в друга система, например в шестнадесетична, ще делим на шестнадесет. Ако в шестична, делим на шест. На практика ще изглежда така:

70:2=35⟶0(остатък при делението)35:2=17⟶117:2=8⟶18:2=4⟶04:2=2⟶02:2=1⟶01:2=0⟶1

Получаваме числото в двоична система от остатъците при делението. Но не ги вземаме отгоре надолу, а отдолу нагоре. Така числото 70 в двоична система е 1000110.

Преобразуване от двоична в десетична система

Обратно ще преобразуваме така. Нека имаме числото 1100010 и да го преобразуваме в десетична система. Тази посока е по-лесна, достатъчно е да пресметнем следната сума:

11000102=1⋅26+1⋅25+0⋅24+0⋅23+0⋅22+1⋅21+0⋅20

Всяко събираемо има вида x · 2i, където x е цифра от първоначалното двоично число, а i се увеличава отдясно наляво всеки път с единица. Тъй като преобразуваме числото 1100010, сумата изглежда така:

11000102=1⋅26+1⋅25+0⋅24+0⋅23+0⋅22+1⋅21+0⋅20

Числото 1100010 има седем цифри, така че степенните показатели на числото 2 ще бъдат последователно 6, 5, …, 1, 0. След повдигането в степен и умножението получаваме израза:

11000102=64+32+2=98.

Защо този начин работи?

Можем да го покажем с десетичната система. Какво всъщност означават цифрите в едно число, например в числото 7384? Цифрата 4 показва броя на единиците, цифрата 8 – броя на десетиците, цифрата 3 – броя на стотиците, а цифрата 7 – броя на хилядите. Така можем да запишем, че

7384=7⋅1000+3⋅100+8⋅10+4⋅1

Този израз можем да преобразуваме още, така че да не използваме числата 100, 10 и 1, а навсякъде да имаме някаква степен на 10. Тъй като 100 = 1 и 101 = 10 и т.н., можем да запишем

7384=7⋅103+3⋅102+8⋅101+4⋅100

Всяко число в десетичната система можем да опишем по същия начин, като отделните събираеми имат вида x · 10i, където x е цифра от 0 до 9 – тези цифри са десет. Стойността i е някакво неотрицателно цяло число, което показва разреда. Ако i = 0, събираемото показва единиците, ако i = 2, показва стотиците (защото 102 = 100).

Нека сега преобразуваме числото 7348 от десетична система в, ъъъ…, десетична система. Ще има смисъл. Числото 7348 ще делим на 10:

7348:10=734⟶8(остатък при делението)734:10=73⟶473:10=7⟶37:10=0⟶7

Ако прочетем остатъците отдолу нагоре, имаме числото 7348 – отново първоначалното число, което се опитвахме да преобразуваме … в същата система.

Ако искаме да опишем двоичната система, постъпваме по съвсем същия начин – всички събираеми ще имат вида x · 2i, където x е цифрата 0 или 1. Стойността i отново показва разредите. Както последователното деление на десет ни дава броя на разредите в числото в десетичната система, така последователното деление на две ни дава броя на разредите в двоичната система.

Същевременно забележи, че когато делим число на десет и питаме за остатъка, този остатък винаги ще е в интервала [0; 9]. Ако делим число на две, остатъкът може да е или 0, или 1.

Преобразуване в други системи

Предишният начин за преобразуване от десетична в двоична система е толкова универсален, че може да се използва и за други системи. Ако искаме да преобразуваме числото 185 в шестнадесетична система, просто делим на 16:

185:16=11⟶9(остатък при делението)11:16=0⟶11

Числото 185 би имало в шестнадесетичната система вида (11; 9). Вместо „цифрите“ над 9 обикновено се използват букви, така че 10 = A, 11 = B, 12 = C, … Можем да запишем, че числото 185 има в шестнадесетичната система вида B9.

Подобно можем да преобразуваме числото B9 от шестнадесетична в десетична система.

B916=11⋅161+9⋅160=11⋅16+9=185