Шестнадесетична бройна система — понятие, примери и роля в компютрите

Научете как работи шестнадесетичната бройна система, преобразувания, примери и ролята ѝ в компютрите — удобен начин за четене и представяне на двоични данни.

Автор: Leandro Alegsa

Шестнадесетичната бройна система, често съкращавана до "шестнадесетична", е бройна система, съставена от 16 символа (основа 16). Стандартната бройна система се нарича десетична (основа 10) и използва десет символа: 0,1,2,3,4,5,6,7,8,9. Шестнадесетичната система използва десетичните числа и шест допълнителни символа. Няма цифрови символи, които да представят стойности, по-големи от девет, затова се използват букви от английската азбука, а именно A, B, C, D, E и F. Шестнадесетична A = десетична 10, а шестнадесетична F = десетична 15.

Основни принципи и позиционна стойност

Шестнадесетичната система е позиционна: всяка цифра има стойност, определена от позицията ѝ и от степен на основата 16. Например числото 2F316 означава 2·16² + F·16¹ + 3·16⁰ = 2·256 + 15·16 + 3 = 512 + 240 + 3 = 75510. Мястото най вдясно е 16⁰ = 1, следващото е 16¹ = 16, след това 16² = 256 и т.н.

Връзка с двоичната система и "нибъл"

Хората използват предимно десетичната система (основа 10), където всяка цифра може да има една от десетте стойности между нула и десет. Това вероятно се дължи на факта, че хората имат десет пръста на ръцете си. Компютрите обикновено представят числата в двоична система (основа 2). В двоичната система всяка "двоична цифра" се нарича бит и може да има само една от две стойности: единица или нула. Тъй като двете възможни стойности на един бит представляват много по-малко информация от десетичната цифра, двоичното представяне на цели числа често изисква много повече битове, отколкото десетични цифри.

Шестнадесетичната система спестява писане и четене на дълги поредици от битове: всяка шестнадесетична цифра съответства точно на група от четири двоични бита (4 бита = 1 "нибъл" или nibble). По този начин една осембитова стойност може да се представи с две шестнадесетични цифри. Пример: десетичното 219 = двоично 11011011 = шестнадесетично 0xDB.

  • Съответствие на шестнадесетични цифри към двоични нибъли:
    • 0 = 0000, 1 = 0001, 2 = 0010, 3 = 0011
    • 4 = 0100, 5 = 0101, 6 = 0110, 7 = 0111
    • 8 = 1000, 9 = 1001, A = 1010, B = 1011
    • C = 1100, D = 1101, E = 1110, F = 1111

Как да конвертираме между системите — примери

От шестнадесетична към двоична: заменяте всяка шестнадесетична цифра с нейния 4-битов еквивалент. Пример: DB16 → D = 1101, B = 1011 → 110110112.

От десетична към шестнадесетична: делите числото на 16 и взимате остатъка; остатъкът дава последната шестнадесетична цифра. Повтаряте с частното. Пример: 21910:

  1. 219 ÷ 16 = 13, остатък 11 → последна цифра B
  2. 13 ÷ 16 = 0, остатък 13 → следваща цифра D
Резултат: 21910 = DB16.

От шестнадесетична към десетична: умножавате всяка цифра по съответната степен на 16 и събирате. Пример: 6316 = 6·16 + 3 = 96 + 3 = 9910. (Бележка: в текстовете числото може да се записва като 63h или 0x63 — виж по-долу.)

Нотации и формати

  • Често използвани префикси/суфикси: 0x63 и 63h означават шестнадесетичното число 63. Много програмни езици използват префикса 0x (например 0xFF).
  • В уеб и CSS шестнадесетичните цветове се записват с "#" преди числото — например #FF0000 е чисто червено (FF за червена компонента, 00 за зелена и синя).
  • Често се срещат и големи/малки букви за A–F; обозначенията са обикновено нечувствителни към регистъра (напр. 0x1a = 0x1A).

Практическо значение и приложения

В компютрите шестнадесетичната бройна система е широко използвана, защото отговаря пряко на организацията на паметта и машинните представяния:

  • Памет и адреси: адресите в паметта и съдържанието на байтове често се показват в шестнадесетичен формат при дебъг и системни инструменти.
  • Машинен код и асемблер: опкодовете и байтовете на машинни инструкции се записват и четат удобно в шестнадесетичен вид.
  • Цветове за уеб и графика: #RRGGBB и съкратени форми като #RGB.
  • Идентификатори и MAC адреси: често се форматират на шестнадесетични групи (напр. 00:1A:2B:3C:4D:5E).
  • Файлови формати и хешове: много хеш-функции (MD5, SHA и др.) и хексови представяния на бинарни данни използват шестнадесетична нотация.

Допълнителни съвети

  • За бързо превръщане между двоична и шестнадесетична: групирайте битовете по четворки (отдясно наляво) и заменете с подходящата шестнадесетична цифра.
  • За четене на стойности: помнете, че всяка позиция е множител на степен на 16 (1, 16, 256, 4096 ...).
  • За програмиране: използвайте стандартните библиотеки и формати на езика (0x... в C/Java/JavaScript, parseInt(str,16) в JavaScript и т.н.).

Обобщение: шестнадесетичната система е удобен, компактeн и тесно свързан с двоичното представяне на данни формат, който улеснява работата с байтове, памет и нисконивоен код в компютърните системи.




 

История

За разлика от съвременните компютри, много ранни компютри са имали шестбитови байтове. Програмистите на тези системи обикновено използваха алтернативна схема за групиране на битовете, наречена осмична. Всяка осмична цифра ефективно представлява три бита, а шестбитов байт може да бъде представен като две осмични цифри. Три бита, всеки от които е включен или изключен, могат да представят осемте числа от 0 до 7: 000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6 и 111 = 7.


 

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

Шестнадесетичната бройна система е подобна на осмичната бройна система (основа 8), тъй като всяка от тях може лесно да се сравни с двоичната бройна система. Шестнадесетичната система използва четирибитово двоично кодиране. Това означава, че всяка цифра в шестнадесетичната система е същата като четири цифри в двоичната система. Окталната система използва трибитова двоична система.

В десетичната система първата цифра е мястото на единицата, следващата цифра вляво е мястото на десетката, следващата е мястото на стотицата и т.н. В шестнадесетичната система всяка цифра може да има 16 стойности, а не 10. Това означава, че цифрите имат място на единицата, място на шестнайсетицата, а следващата е място на 256. Така че 1h = 1 в десетична бройна система, 10h = 16 в десетична бройна система, а 100h = 256 в десетична бройна система.

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

Hex

Двоичен

Октал

Десетична система

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

A

1010

12

10

B

1011

13

11

C

1100

14

12

D

1101

15

13

E

1110

16

14

F

1111

17

15

10

1 0000

20

16

11

1 0001

21

17

24

10 0100

44

36

5E

101 1110

136

94

100

1 0000 0000

400

256

3E8

11 1110 1000

1750

1000

1000

1 0000 0000 0000

10000

4096

FACE

1111 1010 1100 1110

175316

64206


 

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

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

Промяната на числото от двоично в шестнадесетично използва метод за групиране. Двоичното число се разделя на групи от по четири цифри, като се започва отдясно. След това тези групи се преобразуват в шестнадесетични цифри, както е показано в таблицата по-горе за шестнадесетичните числа от 0 до F. За да се промени от шестнадесетична система, се прави обратното. Всяка от шестнайсетичните цифри се превръща в двоична и групирането обикновено се премахва.

Двоичен

Групировки

Hex

01100101

0110

0101

65

010010110110

0100

1011

0110

4B6

1101011101011010

1101

0111

0101

1010

D75A

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

  • двоичен 110 = 0110, което е 6 Hex.
  • двоичен код 010010 = 00010010, което е 12 Hex.

Превръщане на шестнадесетично в десетично число

За преобразуване на дадено число от шестнадесетична в десетична система има два общи начина.

Първият метод е по-често прилаган при ръчно конвертиране:

  1. Използвайте десетичната стойност за всяка шестнадесетична цифра. За 0-9 тя е същата, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
  2. Съхранявайте сбора на числата, преобразувани на всяка стъпка по-долу.
  3. Започнете с най-малката шестнадесетична цифра. Това е цифрата в десния край. Това ще бъде първият елемент в сумата.
  4. Вземете втората най-малка цифра. Тя е до цифрата в десния край. Умножете десетичната стойност на цифрата по 16. Добавете това към сумата.
  5. Направете същото и за третата най-малка цифра, но я умножете по 162 (т.е. 16 на квадрат или 256). Добавете я към сумата.
  6. Продължете за всяка цифра, като умножавате всяко място с друга степен на 16. (4096, 65536 и т.н.)

 

Местоположение

6

5

4

3

2

1

Стойност

1048576 (16 )5

65536 (16 )4

4096 (16 )3

256 (16 )2

16 (16 )1

1 (16 )0


 Следващият метод се прилага по-често при преобразуване на число в софтуер. Не е необходимо да се знае колко цифри има числото, преди да започне, и никога не се умножава по повече от 16, но на хартия изглежда по-дълъг.

  1. Използвайте десетичната стойност за всяка шестнадесетична цифра. За 0-9 тя е същата, но A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15.
  2. Съхранявайте сбора на числата, преобразувани на всяка стъпка по-долу.
  3. Започнете с най-значимата цифра (цифрата вляво). Това е първият елемент в сумата.
  4. Ако има друга цифра, умножете сумата по 16 и добавете десетичната стойност на следващата цифра.
  5. Повтаряйте горната стъпка, докато няма повече цифри.


Пример: 5Fh и 3425h в десетична бройна система, метод 1

 

5Fh в десетична бройна система

Hex

Десетична система

5Fh

=

( 5 x 16 )

+

( 15 x 1 )

=

80

+

15

5Fh

=

95

 

3425h в десетична бройна система

Hex

Десетична система

3425h

=

( 3 x 4096 )

+

( 4 x 256 )

+

( 2 x 16)

+

( 5 x 1 )

=

12288

+

1024

+

32

+

5

3425h

=

13349

Пример: 5Fh и 3425h в десетична бройна система, метод 2

 

5Fh в десетична бройна система

Hex

Десетична система

сума

=

5

=

(5 x 16) + 15

сума

=

80 + 15 (без повече цифри)

5Fh

=

95

 

3425h в десетична бройна система

Hex

Десетична система

сума

=

3

=

(3 x 16) + 4 = 52

сума

=

(52 x 16) + 2 = 834

сума

=

(834 x 16) + 5 = 13349

3425h

=

13349


 

Свързани страници

 

Въпроси и отговори

В: Какво представлява шестнадесетичната бройна система?


О: Шестнадесетичната бройна система е бройна система с основа 16, съставена от 16 символа.

В: Кои са десетте символа, използвани в десетичната бройна система (основа 10)?


О: Десетте символа, използвани в десетичната бройна система (основа 10), са 0,1,2,3,4,5,6,7,8 и 9.

В: Какви шест допълнителни символа използва шестнадесетичната система?


О: Шестнадесетичната система използва букви от английската азбука - A, B, C, D, E и F.

В: Колко бита съдържа един байт в съвременните компютри?


О: При съвременните компютри всеки байт обикновено съдържа осем бита.

В: Какво наричат инженерите и компютърните специалисти четирибитови стойности?


О.: Инженерите и компютърните специалисти наричат четирибитовите стойности "нибъл" (понякога се изписва "нибъл").

В: Как можете да избегнете объркване с други системи за номериране, когато записвате шестнадесетични числа?


О: За да избегнете объркване с други системи за номериране, когато пишете шестнадесетични числа, можете да добавите "h" след или "0x" преди числото. Например 63h или 0x63 означава 63 в шестнадесетична бройна система.


обискирам
AlegsaOnline.com - 2020 / 2025 - License CC3