Разлика между версии на „Шестнайсетична бройна система“

редакция без резюме
'''ШестнадесетичнатаШестнайсетичната бройна система''' е [[Бройна система#Позиционни бройни системи|позиционна бройна система]], в която числата се представят с помощта на 16 динамични символа. Символите от '''0-9''' са представени чрез [[арабски цифри]], а латинските букви '''A, B, C, D, E, F (или a-f)''' взимат стойностите от 10-15. Всяка шестнадесетичнашестнайсетична цифра се представя като група от четири двоични цифри ([[бит]]). Причина за това е, че за съхраняването на данните в оперативната памет на електронноизчислителни машини се използва двоичен код.
 
== Представяне ==
</table>
 
За да не се обърква представянето на символите в различните бройни системи се използват няколко установени практики. Една от тях е при изписването на знаците да се слага долен индекс, който показва основата на бройната система. Например 119<sub>10</sub> в десетична и е равно на 77<sub>16</sub> в шестнадесетичнашестнайсетична. Други предпочитат индекса да е текстов 119<sub>decimal</sub> или 119<sub>d</sub> - десетична, 77<sub>hex</sub> или 77<sub>h</sub>– шестнадесетичнашестнайсетична. Изписването на отрицателни числа става по същият начин както и в десетична бройна система с "-".
 
При разработката на софтуер са разработи различни методи за представянето на шестнадесетичнитешестнайсетичните символи:
* В URIs (както и в [[URL]]s), низ от символи написан като шестнадесетичнашестнайсетична двойка се изписва с „%“: <code><nowiki>http://www.example.com/name%20with%20spaces</nowiki></code>, където %20 е празното място между знаците (стойности 20<sub>16</sub> и 32<sub>10</sub>).
* В [[XML]] и [[XHTML]] знаците могат да бъдат изразени с аритметични код като „&#xcode“, където „code“ e 1-6 цифрено шестнадесетичношестнайсетично число добавено към символ от [Уникод|Unicode]. Вследствие &#x007А е еквивалент на „z“([[Уникод|Unicode]] стойност 007А, десетична 122)
*Цветовата гама в [[HTML]], [[CSS]] и X Windows могат да бъдат изразени с шест цифрен шестнадесетиченшестнайсетичен код (по две за червено, зелено и синьо, подредени в този ред) предхождан с #: бялото се възпроизвежда с #FFFFFF. В [CSS] това може да се представи и с 3 знака #FFF(бяло)
* В програмни езици като [[C++]], [[C Sharp|C#]], [[Java]], [[JavaScript]], [[Python]] и Windows PowerShell се пише 0x пред шестнадесетичнотошестнайсетичното число:0xA12. Символи или символни низове могат да се представят с \x последвани от два шестнадесетичнишестнайсетични символа:\x1B.а
* Други езици като [[Паскал (език)|Pascal]], [[Delphi]], някои версии на [[BASIC]] ( Commodore ), GML и [[Forth]] използвате $ като префикс: $ 5A3.ac
* В [http://bg.wikipedia.org/wiki/%D0%A3%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4 Unicode] стандарт, символна стойност се представя с U + следвана от шестнадесетиченшестнайсетичен стойност: U +03B1 - гръцката буква алфа (α).
* Всички [[IPv6]] адреси могат да бъдат записани като осем групи от по четири шестнадесетичнишестнайсетични цифри, където всяка група е отделена от двоеточие ( : ).Валиден [[IPv6]] адрес: 2001:0 db8: 85a3: 0000:0000:8 A2E: 0370:7334
 
=== Ранните писмени представяния ===
* The Librascope LGP-30 използва букви F, G, J, K, Q и W.
 
== Ранно използване на шестнадесетичнашестнайсетична бройна система в компютъра ==
[[Двоична бройна система|Двоичната бройна система]] е много добра за [[Компютър|компютрите]], но има малък недостатък – броят на цифрите расте неимоверно бързо. Както се оказва, има и друга бройна схема, която също е благоприятна за компютрите: '''шестнадесетичнаташестнайсетичната'''. Преди години, когато компютърът е бил все още съвсем ново откритие, хората, които го проектирали осъзнали, че трябва да се създаде '''стандарт''' за съхранение на информация. Тъй като компютрите могат да смятат само с двоични числа - '''букви, текст''' и други символи трябвало да бъдат съхранени като числа. Но притеснението им не е било само това. Те трябвало да се уверят, че числото, което, представя примерно ‘А’, ще бъде едно и също на всички компютри. За да се улесни това се създала [[ASCII]] (от Английски език – '''American Standard Code for Information Interchange''') таблицата. В нея има невидими символи, които изпълняват определи функции, като отместване на указателя (09), звън (07). Могат да се използват различни комбинации на само осем двоични цифри, или битове, за да се представи всеки символ на ASCII графиката.
'''128 знака''' можели да изглеждат много, но не след дълго разработчиците забелязали липсата на много от специалните гласни, използвани от '''[[Латински език|латинския език]]''', различни от [[Английски език|английския език]] като например: ä, é, û и Æ. Също липсвали и математически символи (±, µ, °, ¼) и знаци за парични валути, различни от ($) като (£, ¥, ¢). За да се компенсира тази липса, '''ASCII''' таблицата била разширена от '''128''' на '''256''' символа.
 
Стойността на 256 може да бъде представена като шестнадесетшестнайсет на втора степен, което ни връща към '''шестнадесетичнашестнайсетична бройна система'''. Оказва се, че всеки символ на ASCII таблицата може да се представи чрез двуцифрено число в шестнадесетичнашестнайсетична бройна система – от 00 до FF.
 
== Преобразуване ==
Човек е свикнал да работи в десетична бройна система, но компютрите работят в двоична бройна система ( съставена само от 0-ли и 1-ци ). Целта на шестнадесетичнаташестнайсетичната бройна система е да помогне на хората, когато работят с големи числа.
 
{| class="prettytable" style="text-align:center"
|}
 
=== От Двоична в ШестнадесетичнаШестнайсетична ===
Ако искаме да сметнем числото 01101000101000101111 <sub>(2)</sub> до число с база <sub>(16)</sub>, първо се разделя двоичното число на групи от по четири:
 
Когато се съберат се получава, че 01101000101000101111 <sub>(2)</sub> = 68A2F<sub>(16)</sub>.
 
=== От ШестнадесетичнаШестнайсетична в Двоична ===
Числото 68A2F<sub>(16)</sub> в двоична бройна система:
 
Когато се съберат се получава, че = 68A2F<sub>(16)</sub> = 01101000101000101111 <sub>(2)</sub>.
 
=== От Десетична в ШестнадесетичнаШестнайсетична ===
Имаме числото 428591. Всяка цифра се разделя на 16 и се взима нейният остатък. Полученото от делението число делим отново на 16, дотогава докато се получи 0 за резултат. Получените от остатъка числа се вземат отзад напред (от последното деление до първото) и се получава числото в шестнадесетичнашестнайсетична бройна система.
 
{| border="0"
</source></big>
 
=== От ШестнадесетичнаШестнайсетична в Десетична ===
Имаме числото 68A2F<sub>(16)</sub>. Взимат се цифрите отзад напред, всяка се умножава с 16<sup>[0..n]</sup>. Резултатът се събира.
 
15 + 32 + 2560 + 32768 + 393216 = 428591
 
И получамеполучаваме, че 68A2F<sub>(16)</sub> = 428591<sub>(10)</sub>.
 
Това е C# имплементация на горния алгоритъм
Съвременните операционни системи с графичен интерфейс предлагат калкулатори, способни да преминават през различни бройни системи.
 
Във [[Microsoft Windows]], на калкулаторът може да бъде зададен научен стил/програмистки стил, който предлага преобразуване от [[двоична бройна система|двоична]], [[осмична бройна система|осмична]], [[десетична бройна система|десетична]] и шестнадесетичнашестнайсетична бройни системи. За шестнадесетичнашестнайсетична бройна система има специални бутони от A до F, които стават активни, когато се избере бройната система(Hex). Но в шестнадесетиченшестнайсетичен стил калкулаторът може да смята само цели числа.
 
В [[Ubuntu]], калкулаторът има научен изглед, който също поддържа пресмятането от различни бройни системи, което включва шестнадесетичнашестнайсетична. Също както във [[Microsoft Windows]], има специални бутони от A до F.
 
В [[Mac OS X]] вграденият калкулатор не поддържа пресмятането на различни бройни системи.
Като ''0b'' винаги стои пред числото, за което се търси.
 
При шестнадесетичнашестнайсетична -> 0x23A1F
 
Като ''0x'' винаги стои пред числото, за което се търси.
 
== Степени ==
Най-широко използваната степен, тази на двойката, е лесна за представянето на числа в шестнадесетичнашестнайсетична бройна система. Примери за степени на двойката са показани по-долу:
 
{| class="wikitable"
|}
 
Дори по-лесна за използване е степента на четворката, защото квадратът на четири прави шестнадесетшестнайсет – основата на шестнадесетичнаташестнайсетичната бройна система. Примери за степени на четворката са показани по-долу:
 
{| class="wikitable"
== Култура ==
=== Етимология ===
Думата '''хексадесимал''' е съставена от '''хекса-''' (от [[Гръцки език]] – „шест”) и '''–десимал''' (от [[Латински език]] – „десет”). За първи път думата хексадесимал, заместваща ранната латинска интерпретация - '''сексадесимал''', се появява през 1954 година. Думата шестдесетичен (за '''шестдесетична бройна система''') запазва латинското си название „'''сексагесимал'''”. Доналд Кнут е посочил, че правилният термин е „'''сенидъри'''”(от Английски – „senidery”) за латинското наименувание – „групирани по 16”. Алфред Б. Тейлър е използвал „сенидъри” в средата на 18 век в неговата документация за алтернативни бройни системи, въпреки че той отхвърля използването на шестнадесетичнашестнайсетична бройна система заради „неудобния брой цифри”. Шварцман отбелязва, че шестнадесетичнаташестнайсетичната бройна система трябва да носи наименуванието си от Латински, а именно – „сексадесимал”. Но неговите опасения са, че компютърните хакери биха съкратили думата просто на „секс”. Етимологическото правилно гръцко понятие би било „'''хексадъкейдик'''” (въпреки че в съвременния гръцки език е по-разпространено „'''дека-хексадик'''”).
 
=== Използване в китайската култура ===
Традиционните китайски единици за тегло са в шестнадесетичнашестнайсетична бройна система. Например, един джин в старата система се равнява на шестнадесетшестнайсет таела. Китайското сметало може да се използва за извършване на шестнадесетичнишестнайсетични изчисления.
 
== Основни абревиатури ==
| Десетична ({{lang-en|decimal}}) || dec || 10
|-
| ШестнадесетичнаШестнайсетична ({{lang-en|hexadecimal}}) || hex || 16
|}