Продукти

Бройни системи

Бройни системи
8 ноември 2021

Бройната система е символен метод за представяне на числата използвайки ограничен брой символи (цифри).

Разделят се на два вида:

Непозиционни – при тях стойността на цифрата не зависи от нейната позиция в числото. Такава бройна система е Римската.

Позиционни – при тях стойността на цифрата зависи от нейната позиция в записа на числото, като тя се умножава с т.нар. тегловен коефициент.

Тегловният коефициент е  основата на бройната система (например 2, 10 или 16), повдигната на различна степен: нула – за най-младшия разряд, единица за следващия и т.н. – степента нараства с единица за всеки следващ по-старши разряд (ако числото е дробно, степента на най-старшия разряд е -1).

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

В електрониката и програмирането се използват двоична, шестнадесетична и по-рядко осмична бройна система.

 

  1. Двоична бройна система

При двоичната бройна система се използват само две цифри – 0 и 1.

Бележи се с долен индекс 2 или с малката латинска буква b (от английски: binary – „двоичен“) след числото.

Например 10012 =1001b = 910,

Отделните цифри се означават като бит. Редицата от битове (0 и 1) се нарича бинарен (или двоичен) код. Група от 8 бита е прието да е равно на 1 байт.

Както при всички други бройни системи завършващият (най-десният) бит се нарича най-младши разред, а всеки отляво е по-старши разред.

 

Преобразуване:

  • От десетична в двоична:

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

Да вземем например числото 50:

 50:2 = 25 -> остатък 0

25:2 = 12 -> остатък 1

12:2 = 6 -> остатък 0

6:2 = 3 -> остатък 0

3:2 = 1 -> остатък 1

1:2 = 0 -> остатък 1

 

След като извършим делението вземаме получените в остатъка нули и единици, като резултатът в последното деление става най-старшия разряд на двоичното число, а резултатът от първото деление – най-младшия.

Тоест получаваме че числото 50 в двоичен код е 110010.

 

За да преобразуваме дробно число последователно умножаваме по основата на бройната система (в случая 2) до достигане на желаната точност. При всяко умножаване цялата част на получения резултат е съответен разряд от двоичния еквивалент.

 

Да вземем за пример числото 0. 425 и да го преобразуваме в двоично число с точност до петия знак след запетаята:

 

0.425*2 = 0.85 -> 0

0.85*2 = 1.7 -> 1 (изваждаме 1)

0.7*2 = 1.4 -> 1 (изваждаме 1)

0.4*2 = 0.8 -> 0

0.8*2 = 1.6 -> 1 (изваждаме 1)

 

За да получим числото, вземаме цялата част от всеки отговор от горе на долу и за числото 0,425 в десетична бройна система получаваме (с точност до петия знак след запетаята) 0,01101 в двоична.

      

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

Например числото 50,425:

Първо преобразуваме 50 -> 110010

След това преобразуваме дробната част 0.425 -> 0,01101

50,425 -> 110010,01101

 

 

  • От двоична в десетична бройна система

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

 

1011011 = 1*26 + 0*25 + 1*24 + 1*23 + 0*22 + 1*21 + 1*20 = 64 + 0 + 16 + 8 + 0 + 2 + 1 = 91

 

За по-опрестено преобразуване можем да сумираме само тези тегловни коефициенти съдържащи единица, тоест:

1011011 = 1*26 + 1*24 + 1*23 + 1*21 + 1*20 = 64 + 16 + 8 + 2 + 1 = 91

 

 

   2. Шестнадесетична бройна система

Това е позиционна бройна система, с основа 16, в която числата се представят с помощта на 16 динамични символа. Символите от 0-9 са представени чрез арабски цифри, а латинските букви A, B, C, D, E, F (или a-f) се ползват за стойностите от 10 до 15. Всяка шестнайсетична цифра се представя като група от четири двоични цифри (бит).

 

Преобразуване:

  • От двоична в шестнадесетична и обратно:

Най-лесно се осъществява използвайки следната таблица:

 

Десетична

Двоична

Шестнадесетична

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100

4

5

0101

5

6

0110

6

7

0111

7

8

1000

8

9

1001

9

10

1010

А

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

 

 

Aко искаме да преобразуваме двоичното число 10110010101001111101101 в шестнадесетичен код, трябва да го разделим, от най-младшия разряд към най-старшия, на по четири бита (тетради). Тоест:

101|1001|0101|0011|1110|1101

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

0101|1001|0101|0011|1110|1101

 

И така получаваме:

0101 -> 5

1001 -> 9

0101 -> 5

0011 -> 3

1110 - > Е

1101 -> D 

10110010101001111101101(2) = 5953ED(16)

 

 

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

Пример:

8D4A(16)

8 -> 1000

D -> 1101

4 -> 0100

A -> 1010

8D4A(16) = 1000110101001010(2)

 

  • От десетична в шестнадесетична

Както при двоичната бройна система, преобразуването от десетична в шестнадесетична се извършва като разделим десетичното число на 16 докато не получим, частно нула.

 

Пример:

538231(10) = ?(16)

538231:16 = 33639 -> остатък 7

33639:16 = 2101 -> остатък 7

2101:16 = 131 -> остатък 6

131:16 = 8 -> остатък 3

8:16 = 0 -> остатък 8

 

Взимаме остатъка отзад напред и получаваме: 538231(10) = 83677(16)

 

  • От шестнадесетична в десетична бройна система

Отново е аналогично на превръщането при двоичната система.

 

Пример:

3А5F(16) = ?(10)

F*160 = 15*160 = 15*1 = 15

5*161 = 5*16 = 80

A*162 = 10*162 = 2560

3*163 = 12288

3A5F(16) 12288 + 2560 + 80 + 15 = 14943(10)

 

 

 

3. Осмична бройна система

Това е бройна система с основа 8 и използва цифрите от 0 до 7.

Тази бройна система се използва по-рядко.

Преобразуването от десетична в осмична бройна система (и обратното) е аналогично както при другите бройни системи.