Основно съдържание
Компютрите и интернет
Курс: Компютрите и интернет > Раздел 1
Урок 3: Шестнайсетични числаШестнайсетични числа
Двоичните числа са чудесен начин компютрите да представят числа. Обаче не са толкова удобни за хората – толкова са дълги, че отнема известно време, за да се преброят всички -и и -ци. Когато компютърните инженери боравят с числа, те често използват или десетичната или шестнадесетичната бройна система. Да, още една бройна система!
За щастие, бройните системи имат повече прилики, отколкото разлики и сега, когато знаеш чудесно десетичната и двоичната, надяваме се, че шестнадесетичната ще ти е интуитивна.
В десетичната система всяка цифра представя степен на – единиците, десетиците и т.н. Наричаме основата на десетичната бройна система.
В шестнадесетичната бройна система всяка цифра представя степен на .
Ето как се брои до 10 шестнадесетично: , , , , , , , , , .
Това изглежда доста познато, докато не стигнем последното "число" . Знаеш ли, в шестнадесетичната система всяка цифра трябва да представя стойностите - , но десетичните числа - не се побират в една цифра. За да се справи с този проблем, шестнадесетичната система използва буквите - , за да представи числата - .
Така, нека броим от 10 до 15: , , , , , . Странно, но вярно!
Всъщност през годините е имало множество различни предложения за това как да се представят стойностите 10-15, но - е решението, което е спечелило.
А сега да преброим по-нагоре. Това е десетичното число , представено в шестнадесетичен вид :
Това число изисква две цифри, като дясната цифра представя единиците ( ), а лявата цифра представя шестнадесетиците ( ). Също както сумирахме десетични и двоични числа, можем да сумираме и и да видим, че е равно на десетичната стойност .
Да опитаме число, което съдържа буква. Ето го десетичното число , представено в шестнадесетичен вид като :
За да разберем този пример, първо трябва да си спомним, че представя стойността . Аз го правя, като броя буквите на пръсти, но ти можеш да го правиш както ти е удобно, стига да запомниш, че трябва да започнеш от , представящо .
След това сумираме както по-рано и виждаме, че е равно на десетичната стойност .
Защо основа 16?
На този етап може би се чудиш какво толкова ѝ харесват на шестнадесетичната система компютърните инженери. Защо да използваме система, в която са ни нужни букви, за да представяме числа? Малко историческо отклонение ще ни покаже защо...
Ранните компютри използвали 4-битови архитектури, което означава, че те винаги са обработвали битовете в групи по 4. Това е причината все още да записваме битовете в групи по 4, както когато пишем , за да представим десетичното , въпреки че можем да напишем само .
Колко стойности могат да представят 4 бита? Най-малката стойност е (само нули – ), а най-голямата стойност е (само единици – ), така че 4 бита могат да представят 16 уникални стойности. Аха, ето го числото 16!
Всяка група от 4 бита двоично е една цифра в шестнадесетичната система. Това прави много лесно превръщането на двоични числа в шестнадесетични числа и ги прави естествени за използване и в компютрите.
Превръщане на двоични в шестнадесетични числа
Нека докажем колко добре се разбират двоичните и шестнадесетичните числа, като превръщаме от двоични в шестнадесетични.
Ще започнем с късо двоично число:
То е дълго 4 бита, което означава, че отговаря на една шестнадесетична цифра. Има на всяка позиция, с изключение на позицията на двойките, следователно е равно на десетичното число . И десетичната, и шестнадесетичната системи представят числата - по един и същ начин, така че е просто в шестнадесетичен запис.
Да опитаме с по-дълго двоично число:
Един подход би бил да разберем какво десетично число е представено от този дълъг низ от нули и единици и след това да превърнем него в шестнадесетично. Този подход ще свърши работа, но, човече, звучи като много работа за такова число.
По-лесният подход е да превръщаме всяка група от по 4 бита наведнъж.
Започвайки с най-лявата група , която е равна на , десетичното число . Това число е по-малко от , така че е просто шестнадесетично.
Следващата група е , или , десетичната стойност . Това число изисква буквено представяне в шестнадесетичен вид – .
Следващата група е , или , десетичната стойност . Това число е същото в шестнадесетичен вид – .
Последната група е , или , деесетичната стойност . Tова число изисква буквено представяне в шестнадесетичен вид – .
Крайният ни шестнадесетичен резултат е . Направихме това преобразуване без да знаем кое десетично число е представено. Сега ще разкрия и двете и са равни на десетичното число . Това е ужасно голямо число – радвам се, че го превърнахме цифра по цифра.
Модели в шестнадесетичните числа
Хайде да придобием малко интуиция за шестнадесетичната бройна система.
Първо: какво е най-голямото число за даден брой цифри? В десетичната система това са само деветки, като . В двоичната система това са само единици, като .
В този случай в шестнадесетичната система всяка цифра е – . Когато видим такова число знаем, че то представя най-голямата възможна стойност за този брой цифри. За да представим което и да било по-голямо число, ще ни трябват повече цифри.
Добре, колко представя голямо число като това? Можем да използваме същото правило, както при двоичната система – най-голямото число, което може да се представи с даден брой цифри , е същото, като . Сега, след като работим с основа 16, вместо основа 2, може да ни се наложи да използваме калкулатор, за да се справим.
Тук имаме таблица с първите 4 големи стойности:
Цифри | Най-голямо шестнадесетично | Десетична равностойност |
---|---|---|
1 | ||
2 | ||
3 | ||
4 |
Приложение на шестнадесетичната бройна система
В този раздел за принципите на работа на компютрите ще се занимаваме предимно с двоични числа. Важно е обаче да разбираш и шестнадесетичните, тъй като те ще се появяват в следващите раздели, а и като цяло в ежедневието на програмистите.
Един пример от моя опит – разработчиците на сайтове използват шестнадесетични числа, за да представят цветовете. Описваме цветовете като комбинация от три съставки: червено, зелено и синьо. Всяка от тези съставки може да се променя между и . Синият цвят може да се запише така уникални цвята — повече от 16 милиона цвята!
rgb(0, 0, 255)
или с по-съкратената шестнадесетична версия, #0000FF
. Използвайки тази нотация, можем да опишем Сега, след като се запозна с шестнадесетичните числа, отваряй си очите за тях. Често ще ги виждаш записани с
0x
пред тях, като 0x4F
или можеш да разпознаеш отличителната им смесица от 0-9
с A-F
. Ако забележиш интересно тяхно приложение в ежедневието, сподели откритието си по-долу в секцията "Съвети и благодарности".🙋🏽🙋🏻♀️🙋🏿♂️Имаш ли въпроси по темата? Ще се радваме да ти отговорим, просто задай въпросите си по-долу!
Искаш ли да се присъединиш към разговора?
Все още няма публикации.