Двоична, осмична, десетична и шестнадесетична бройна система,
прав, обратен, допълнителен и BCD код


Таблица на някои числа в различните бройни системи

БРОЙНА СИСТЕМА
16 (HEX) 10 (DEC) 8 (OCT) 2 (BIN)
0 0 0 0000
1 1 1 0001
2 2 2 0010
3 3 3 0011
4 4 4 0100
5 5 5 0101
6 6 6 0110
7 7 7 0111
8 8 10 1000
9 9 11 1001
A 10 12 1010
B 11 13 1011
C 12 14 1100
D 13 15 1101
E 14 16 1110
F 15 17 1111


 

ДЕСЕТИЧНА БРОЙНА СИСТЕМА

Това е общоприетата бройна система - тази, в която работим (съкращението й е DEC - Decimal /десетичен/). За нейното образуване се използват числата от 0 до 9. Преминаването от шестнайсетична, осмична и двоична бройни системи в десетична става посредством следната формула:

Aq =anqn + an-1qn-1 + ... + a0q0 + a-1q-1 + ... + amq-m

където: q е основата (бройната система - 2, 8, 10 или 16); n - брой позиции (започват от 0, 1, 2, ...) преди десетичната запетая (ако числото е дробно); m - брой позиции (започват от 1, 2, ...) след десетичната запетая (ако числото е дробно); a - тегловен коефициент.
За да стане по-ясно казаното до тук, ще разгледам няколко примера.

Примери:


 

ДВОИЧНА БРОЙНА СИСТЕМА

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

знаков бит бит 9 бит 8 бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
1 0 0 1 1 1 0 1 0 1 0

Двоичната бройна система се означава с BIN (Binary - двоен). Превръщането на десетично число в двоично става по следния начин:

Алгоритъм:

Пример:

Да се превърне числото 5710 в двоична бройна система.

    ц. ос.
57 :2= 28 1
28 :2= 14 0
14 :2= 7 0
7 :2= 3 1
3 :2= 1 1
1 :2= 0 1

Записваме резултата обратно на получаването му: 5710=1110012

Ако числото е дробно се спазва следният алгоритъм за дробната част:

Пример:

Да се превърне числото 57,2510 в двоична бройна система.

    др. ц.
0,25 *2= 0,5 0
0,5 *2= 0 1

Резултатът се записва в реда на получаването му: 57,2510=111001,012


 

ОСМИЧНА БРОЙНА СИСТЕМА

За образуването на тази бройна система се използват числата от 0 до 7. Съкращението й е OCT (от Octal - осмичен). Превръщането на число от десетична в осмична бройна система става аналогично на превръщането от десетична в двоична, но за основа се взима числото 8 и вместо да се дели (умножава) на две - се дели (умножава) на 8.

Пример:

Да се превърне числото 5710 в осмична бройна система.

    ц. ос.
57 :8= 7 1
7 :8= 0 7

Записваме резултата обратно на получаването му: 5710=718

Да се превърне числото 57,2510 в осмична бройна система.

    др. ц.
0,25 *8= 0 2

Резултатът се записва в реда на получаването му: 57,2510=71,28

 

Превръщане от осмична в двоична бройна система

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

Пример:

Да се превърне числото 57 от осмична в двоична бройна система.

Правим следното нещо: от горната таблица превръщаме числата в триади - 5 -> 101; 7 -> 111. Забележете, че не се взимат всичките четири бита от числото в двоичен код, а само последните три бита, без най-старшия. Събираме двете части на числото и се получава резултатът: 578=1011112.

Превръщане от двоична в осмична бройна система

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

Пример:

Да се превърне числото 1011110 от двоична в осмична бройна система.

Разделяме числото на триади:

1
011 110

Тъй като от пред не стигат числата за образуване на триада, то там се попълват нули:

001
011 110

Отделната триада се превръща в съответното число в осмичен код, посредством таблицата за бройните системи в началото на документа. Ето и съответните стойности: 001 -> 1; 011 -> 3 и 110 -> 6. Сглобяват се получените цифри и се получава числото в осмична бройна система: 10111102=1368.


 

ШЕСТНАДЕСЕТИЧНА БРОЙНА СИСТЕМА

За образуването на тази бройна система се използват числата от 0 до 9 и буквите A, B, C, D, E и F. Съкращението й е HEX (от Hexadecimal - шестнадесетичен). Превръщането на число от десетична в шестнадесетична бройна система става аналогично на превръщането от десетична в двоична, но за основа се взима числото 16 и вместо да се дели (умножава) на две - се дели (умножава) на 16.

Пример:

Да се превърне числото 5710 в шестнадесетична бройна система.

    ц. ос.
57 :16= 3 9
3 :16= 0 3

Записваме резултата обратно на получаването му: 5710=3916

Да се превърне числото 57,2510 в шестнадесетична бройна система.

    др. ц.
0,25 *16= 0 4

Резултатът се записва в реда на получаването му: 57,2510=39,416

Превръщане от шестнадесетична в двоична бройна система

Това превръщане става аналогично на осмично-двоичното преобразуване, само, че тук се използват тетради вместо триади (тетрадата е поредица от четири бита в двоичен код). Значи какво правим: всяка една цифра или буква от шестнадесетичното число се превръщат в тетради в двоично число, като се използва таблицата в началото на документа. Получените тетради се сглобяват и се получава двоичното число.

Пример:

Да се превърне шестнадесетичното число F31 в двоично.

Значи следваме алгоритъма: всяко едно от числата /буквите/ го превръщаме в тетради - F -> 1111; 3 -> 0011; 1 -> 0001. Сглобяваме получените тетради и получаваме двоичното число: F3116=1111001100012.

Превръщане от двоична в шестнадесетична бройна система

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

Пример:

Да се превърне числото 10110111101 от двоично в шестнадесетично.

Разделяме числото на тетради:

101 1011 1101

От пред се допълва една нула, за да се образува тетрада:

0101 1011 1101

Съответните тетради се превръщат в шестнадесетични символи: 0101 -> 5; 1011 -> B; 1101 -> D. Сглобяват се шестнадесетичните символи и се получава шестнадесетичното число: 101101111012=5BD16.


Прав, обратен и допълнителен код

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

Прав код

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

знаков бит бит 9 бит 8 бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
1 0 0 1 1 1 0 1 0 1 0

Обратен код

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

знаков бит бит 9 бит 8 бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
1 1 1 0 0 0 1 0 1 0 1

Допълнителен код

Той се получава като към обратния код на числото се прибави "1". Тоест

10011101010

  Прав код

11100010101

  Обратен код

+ 1

   

11100010110

  Допълнителен код

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


Двоично ДЕСЕТИЧЕН код

Съкращението на този код е BCD (Binary Coded Decimal), тоест двоично кодирано десетично число. При двоично десетичния код всяка една от десетичните цифри се кодира с една тетрада (поредица от четири бита в двоичен код), като всеки разряд има определено тегло: 8, 4, 2, 1. Тетрадите се взимат от таблицата в началото на документа. Пример:

Да се представи числото 91 в BCD код.

9 -> 1001, 1 -> 0001 следователно числото 91 = 10010001 в BCD код.

Така кодирано числото не е в двоичен код, а в смесен двоично десетичен код (BCD код). Ако искаме да превърнем числото от десетичен в двоичен код, то трябва да се спазва алгоритъмът, описан по-горе.


Ако все още не сте разбрали как става превръщането от една бройна система в друга и все още не можете да превърнете дадено число от един вид в друг (за което аз се съмнявам и мисля, че сами можете да превръщате от една бройна система в друга), то натиснете тук (или натиснете бутонът Инструменти от менюто в ляво) и след зареждането на новия документ изберете препратката "Конвертор на числа". С негова помощ можете бързо и лесно да превръщате числа от една бройна система в друга, без да извършвате сами необходимите сметки и преобразувания. Недостатък на този скрипт обаче е, че може да преобразува само цели числа - не може да преобразува дробни числа.

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

Ако искате можете да си свалите електронна книга за бройните системи, която съдържа информацията в този документ, като отидете в раздел Изтегляне или натиснете тук.


 

 

© 2002 - 2014 Tigertron™
/Иван Георгиев/

http://tigertron.free.bg/

Copyright (Условия за копиране):

Забранява се копирането и/или използването на статията или на части от нея за каквито и да било цели без знанието и изричното позволение на автора.
С неразрешеното от автора (Иван Георгиев) използване на материали и текстове от сайта се задължаваме към Иван Георгиев с 5000 (пет хиляди) USD/ден.