Шістнадцяткова система енергії. Шістнадцяткова система числення

27.09.2019 Новини

Звична в людини система числення – десяткова. В її основу входять десять цифр від 0 до 9. Шістнадцяткову систему відрізняє наявність у ній перших шести літер латинського алфавіту для запису чисел крім основних цифр. Тобто після цифри 9 слідує символ «A», який відповідає числу 10 для десяткової системи. Відповідно, F у шістнадцятковій системі – це 16 у десятковій. Використання шістнадцяти символів у системі – невипадковий вибір.

Одиниця інформації – біт. Вісім біт утворюють байт. Існує поняття, як машинне слово – це одиниця даних, що є двома , тобто шістнадцять біт. Таким чином, використовуючи шістнадцять різних символів можна описувати будь-яку інформацію, яка при обміні даних буде найменшою частинкою. З ними можна робити будь-які арифметичні дії, результат, відповідно, вийде також у шістнадцятковій системі.

Для того щоб відрізняти, що число записано в шістнадцятковій системі, після нього записують букву "h" або нижній індекс "16".

Застосування

Найбільш широке застосування шістнадцяткової системи числення – це коди помилок програмних продуктівнаприклад, операційної системи. Числа, закладені у цих кодах, стандартизовані. Маючи спеціальну таблицю, можна визначити, що саме означає та чи інша помилка.

У мовах низького рівня, максимально наближеним до машинних кодів, шістнадцяткова система застосовується для написання програм. Багато програмістів використовують її і при роботі з мовами високого рівня, Тому що числа в цій системі за допомогою спеціальної таблиці відповідності легко переводяться в двійкову систему, на якій засновано роботу всієї цифрової техніки. Будь-яка інформація в комп'ютері, будь то музичний файлабо текстовий документ, після трансляції представлена ​​послідовністю вихідного двійкового коду, яке зручніше переглядати представленим символами шістнадцятковій системи.

Також одне із застосувань шістнадцяткових символів – опис колірних схем, тобто три компоненти R, G, B описуються відповідним даною системою способом. Цей підхід до запису отримав назву шістнадцятковий колір

Можливість переглянути програму в шістнадцятковому коді дозволяє налагодити її, внести зміни, а зловмисниками цей підхід використовується для злому програм.

Шістнадцятковий запис ("Hex")- Зручний спосіб подання двійкових значень. Так само, як десяткова система числення має основу десять, а двійкова - два, шістнадцяткова система має основу шістнадцять.

Система числення з основою 16 використовує числа від 0 до 9 і літери від A до F. Малюнок показує еквівалентні десяткові, двійкові та шістнадцяткові значення для двійкових чисел від 0000 до 1111. Для нас легше виражати значення у вигляді однієї шістнадцяткової цифри, ніж у бітів.

Розуміння Байтів

Враховуючи, що 8 бітів (байт) є стандартним двійковим угрупованням, двійкові числа від 00000000 до 11111111 можуть бути представлені в шістнадцятковому записі як числа від 00 до FF. Початкові нулі завжди відображаються, щоб завершити 8-розрядну виставу. Наприклад, двійкове значення 0000 1010 у шістнадцятковому вигляді буде 0A.

Подання Шістнадцяткових Значень

Відзначте:Важливо відрізняти шістнадцяткові значення від десяткових значень символів від 0 до 9, як показано малюнку.

Шістнадцяткові значення зазвичай представляються в тексті значенням, якому передує 0x (наприклад 0x73), або за допомогою нижнього індексу 16. Рідше, вони можуть супроводжуватися буквою H, наприклад 73H. Однак, оскільки текст нижнього індексу не розпізнається в командному рядку, ні серед програмування, в технічному поданні шістнадцяткових чисел їм передує " 0x " (нуль X). Тому, приклади вище були показані у вигляді 0x0A і 0x73 відповідно.

Шістнадцятковий запис використовується, щоб представляти MAC-адреси Ethernet та IP-адреси Версії 6.

Шістнадцяткові Перетворення

Перетворення чисел між десятковими і шістнадцятковими значеннями є простими, але швидке розподіл чи множення на 16 який завжди зручно. Якщо такі перетворення необхідні, зазвичай легше перетворити десяткове або шістнадцяткове значення на двійкове, а потім перетворити двійкове значення на десяткове або шістнадцяткове, залежно від того, що потрібно отримати.

З практикою можна розпізнати двійкові шаблони бітів, які відповідають десятковим і шістнадцятковим значенням. Малюнок показує ці шаблони для деяких 8-розрядних значень.

Тепер чекає зовсім легка прогулянка, пов'язана із шістнадцятковою системою числення. У цьому випадку, сподіваємося, ви підозрюєте і, мабуть, справедливо, що у нас тепер має бути 16 різних цифр.

Але, як знаємо, традиційних ( " арабських " ) цифр лише десять. А потрібно шістнадцять. Виходить, що не вистачає шести знаків.

Зауваження
Таким чином, виникає суто дизайнерське завдання по темі "Знаки" - придумати символи, що бракують, для цифр
.

Отже, свого часу фахівцям необхідно було вигадати якісь нові знаки. Але колись, на початку комп'ютерної ери, особливого вибору на знаках не було. Програмісти мали лише знаки цифр і букв. Тому вони пішли елементарним шляхом: взяли перші літери латинського алфавіту як цифри, тим більше що історично це не перший випадок (ми вже згадували, що спочатку замість цифр багато народів використовували літери).

Зауваження
Сподіваємося, що всім зрозуміло, чому в цьому випадку не можна використовувати, наприклад, числа "10", "11", "12" тощо? Тому що, якщо ми говоримо про шістнадцяткову систему числення, то має бути шістнадцять цифр, а не чисел
.

І десяткове число "10" стали позначати латинською літерою "А" (точніше, "цифрою А"). Відповідно, далі йдуть цифри "В", "С", "D", "Е" та "Р.

Оскільки ми мали намір побудувати шістнадцяткову систему, то починаючи з нуля тут якраз і вийде 16 цифр. Наприклад, цифра "D" - це десяткове число "13", а цифра "F" - це десяткове число "15".

Коли до шістнадцяткового числа "F" додаємо одиницю, то, оскільки ці цифри у нас скінчилися, у цьому розряді ставимо "О", а в наступний розряд переносимо одиницю, тому виходить, що десяткове число "16" буде представлено в шістнадцятковій системі числення числом "10", тобто виходить "шістнадцяткова десятка". З'єднаємо десяткові та шістнадцяткові числа в єдину таблицю (табл. 4.5).

Таблиця 4.5. Відповідність десяткових та шістнадцяткових чисел.

Десяткова кількість Шістнадцяткове число Десяткова кількість Шістнадцяткове число
0-9 0-9 29 1D
10 А 30
11 У 31 1F
12 З 32-41 20-29
13 D 42-47 2A-2F
14 Е 48-255 30-FF
15 F 256 100
16 10 512 200
17-25 11-19 1024 400
26 1280 500
27 4096 1000
28 1C

Шістнадцяткова система використовується, щоб компактніше записувати двійкову інформацію. Справді, "шістнадцяткова тисяча", що складається з чотирьох розрядів, у двійковому вигляді займає тринадцять розрядів (1000 16 = 1000000000000 2).

Під час обговорення систем числення неодноразово фігурували "десятки", "сотні" та "тисячі", тому необхідно звернути увагу на так звані "круглі" числа.

Шістнадцяткова система числення(також — шістнадцятковий код) є позиційною системою числення з цілою чисельною підставою 16. Іноді в літературі також використовується термін hex (вимовляється «хекс», скорочення від англ. hexadecimal). Цифрами даної системи числення прийнято використовувати арабські цифри 0-9, і навіть перші символи латинського алфавіту A-F. Літери відповідають наступним десятковим значенням:

  • * A -10;
  • * B -11;
  • * C -12;
  • * D -13;
  • * E - 14;
  • * F - 15.

Таким чином, десять арабських цифр разом із шістьма латинськими літерами і становлять шістнадцять цифр системи.

До речі, на нашому сайті ви можете перекласти будь-який текст у десятковий, шістнадцятковий, двійковий код, скориставшись Калькулятором кодів онлайн.

Застосування. Шістнадцятковий кодшироко застосовується в низькорівневому програмуванні, а також різних комп'ютерних довідкових документах. Популярність системи обґрунтована архітектурними рішеннями сучасних комп'ютерів: в них як мінімальна одиниця інформації встановлено байт (що складається з восьми біт) - а значення байта зручно записувати за допомогою двох шістнадцяткових цифр. Значення байта може ранжуватися з #00 до #FF (від 0 до 255 у десятковому записі) - іншими словами, використовуючи шістнадцятковий код, можна записати будь-який стан байта, при цьому не залишається «зайвих» цифр, що не використовуються в записі.

У кодуванні Юнікоддля запису номера символу використовується чотири шістнадцяткові цифри. Запис кольору RGB (Red, Green, Blue — червоний, зелений, синій) також часто використовує шістнадцятковий код (наприклад, #FF0000 — запис яскраво-червоного кольору).

Спосіб запису шістнадцяткового коду.

Математичний спосіб запису. У математичному записі основу системи записують у десятковому вигляді у нижньому індексі праворуч від числа. Десятковий запис числа 3032 можна записати як 3032 10 , у шістнадцятковій системі це число матиме запис BD8 16 .

У синтаксисі мов програмування. Синтаксис різних мов програмування по-різному встановлює формат запису числа, який використовує шістнадцятковий код:

* У синтаксисі деяких різновидів мови асемблера використовується латинська літера "h", яка ставиться праворуч від числа, наприклад: 20Dh. Якщо число починається з латинської літери, перед ним ставиться нуль, наприклад: 0A0Bh. Це зроблено для того, щоб відрізняти від констант значення, які використовують шістнадцятковий код;

* В інших різновидах асемблера, а також у Pascal (і його різновидах, таких як Delphi) та деяких діалектах Basic, застосовують префікс «$»: $ A15;

* У мові розмітки HTML, а також у каскадних файлах CSS, для вказівки кольору в форматі RGBіз шістнадцятковою системою запису, використовується префікс «#»: #00DC00.

Як перевести шістнадцятковий код в іншу систему?

Переведення з шістнадцяткової системи до десяткової.Для здійснення операції переведення з шістнадцяткової системи в десяткову потрібно подати вихідне число як суму творів цифр у розрядах шістнадцяткового числа на ступінь підстави.

Двійкова СС

шістнадцяткова СС

Наприклад, потрібно виконати переклад шістнадцяткового числа A14: у ньому три цифри. Використовуючи правило, запишемо його у вигляді суми ступенів із підставою 16:

A14 16 = 10.16 2 + 1.16 1 + 4.16 0 = 10.256 + 1.16 + 4.1 = 2560 + 16 + 4 = 2580 10

Переклад чисел із двійкової до шістнадцяткової системи і навпаки.

Для перекладу використовується таблиця зошит. Щоб виконати переведення числа з двійкової в десяткову систему, необхідно розбити його на окремі зошити праворуч наліво, після чого, використовуючи таблицю, виконати заміну кожного зошита на відповідну шістнадцяткову цифру. При цьому, якщо кількість цифр не кратна чотири, то необхідно додати відповідну кількість нулів праворуч від числа, щоб загальна кількість двійкових цифр стала кратно чотири.

Таблиця зошит для перекладу.

Для переведення з шістнадцяткової системи до двійкової, необхідно виконати зворотну операцію: виконати заміну кожної цифри на зошит з таблиці.

Двійкова СС

Вісімкова СС

приклад переведення з шістнадцяткової системи до двійкової: A5E 16 = 1010 0101 1110 = 101001011110 2

приклад переведення з двійкової системи до шістнадцяткової: 111100111 2 = 0001 1110 0111 = 1E7 16

У цьому прикладі кількість цифр у вихідному двійковому числі не була рівним чотирьом (9), тому було додано незначні нулі — загальна кількість цифр стала 12.

Автоматичний переклад. Швидкий перекладз шістнадцяткової системи числення в одну з трьох популярних систем(двійкову, вісімкову та десяткову), як і зворотний переклад, можна виконати, використовуючи стандартний калькулятор з комплекту постачання Windows. Відкрийте калькулятор, виберіть меню Вигляд -> Програміст. У даному режиміможна встановлювати систему числення, використовувану в Наразі(Див. меню зліва: Hex, Dec, Oct, Bin). При цьому зміна поточної системи числення автоматично робить переклад.

Результат уже отримано!

Системи числення

Існують позиційні та не позиційні системи числення. Арабська система числення, якою ми користуємося у повсякденному житті, є позиційною, а римська – ні. У позиційних системах числення позиція числа однозначно визначає величину числа. Розглянемо це з прикладу числа 6372 у десятковому системі числення. Пронумеруємо це число праворуч наліво починаючи з нуля:

Тоді число 6372 можна представити у такому вигляді:

6372 = 6000 +300 +70 +2 = 6 · 10 3 +3 · 10 2 +7 · 10 1 +2 · 10 0 .

Число 10 визначає систему числення (у разі це 10). В якості ступенів взято значення позиції даного числа.

Розглянемо дійсне десяткове число 1287.923. Пронумеруємо його починаючи з нуля позиції числа від десяткової точки вліво та вправо:

Тоді число 1287.923 можна подати у вигляді:

1287.923 = 1000 +200 +80 +7 +0.9 +0.02 +0.003 = 1 · 10 3 +2 · 10 2 +8 · 10 1 +7 · 10 0 +9 · 10 -1 +2 · 10 -2 +3 · 10-3.

У загальному випадку формулу можна подати у такому вигляді:

Ц n · s n +Ц n-1 · s n-1 +...+Ц 1 · s 1 +Ц 0 ·s 0 +Д -1 ·s -1 +Д -2 ·s -2 +...+Д -k ·s -k

де Ц n -ціле число в позиції n, Д -k - дрібне число в позиції (-k), s- система зчислення.

Кілька слів про системи числення. Число в десятковій системі числення складається з множини цифр (0,1,2,3,4,5,6,7,8,9), у вісімковій системі числення - з множини цифр (0,1, 2,3,4,5,6,7), у двійковій системі числення - з множини цифр (0,1), у шістнадцятковій системі числення - з множини цифр (0,1,2,3,4,5,6, 7,8,9,A,B,C,D,E,F), де A,B,C,D,E,F відповідають числам 10,11,12,13,14,15.У таблиці Таб.1 представлені числа в різних системахобчислення.

Таблиця 1
Система зчислення
10 2 8 16
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
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

Переведення чисел з однієї системи числення до іншої

Для переведення чисел з однієї системи числення в іншу, найпростіше спочатку перевести число в десяткову систему числення, а потім з десяткової системи числення перевести в необхідну систему числення.

Переказ чисел з будь-якої системи числення до десяткової системи числення

За допомогою формули (1) можна перевести числа з будь-якої системи числення до десяткової системи числення.

приклад 1. Переводити число 1011101.001 із двійкової системи числення (СС) до десяткової СС. Рішення:

1 ·2 6 +0 ·2 5 + 1 ·2 4 + 1 · 2 3 + 1 · 2 2 + 0 · 2 1 + 1 ·2 0 + 0 ·2 -1 + 0 ·2 -2 + 1 · 2 -3 = 64 +16 +8 +4 +1 +1 / 8 = 93.125

приклад2. Переводити число 1011101.001 з вісімкової системи числення (СС) до десяткової СС. Рішення:

приклад 3 . Переводити число AB572.CDF з шістнадцяткової системи числення до десяткової СС. Рішення:

Тут A-замінений на 10, B- на 11, C- на 12, F– на 15.

Переклад чисел із десяткової системи числення в іншу систему числення

Для переведення чисел із десяткової системи числення в іншу систему числення потрібно переводити окремо цілу частину числа та дробову частину числа.

Цілу частину числа переводиться з десяткової СС в іншу систему числення - послідовним розподілом цілої частини числа на основу системи числення (для двійкової СС - на 2, для 8-ї СС - на 8, для 16-ї - на 16 і т.д. ) до отримання цілого залишку, менше, ніж основа СС.

приклад 4 . Перекладемо число 159 з десяткової СС до двійкової СС:

159 2
158 79 2
1 78 39 2
1 38 19 2
1 18 9 2
1 8 4 2
1 4 2 2
0 2 1
0

Як видно з Мал. 1 число 159 при розподілі на 2 дає приватне 79 і залишок 1. Далі число 79 при розподілі на 2 дає приватне 39 і залишок 1 і т.д. В результаті побудувавши число із залишків поділу (справа наліво) отримаємо число в двійковій СС: 10011111 . Отже можна записати:

159 10 =10011111 2 .

приклад 5 . Перекладемо число 615 з десяткової СС у вісімкову СС.

615 8
608 76 8
7 72 9 8
4 8 1
1

При наведенні числа з десяткової СС у вісімкову СС, потрібно послідовно ділити число на 8, поки не вийде цілий залишок менше, ніж 8. У результаті побудувавши число із залишків розподілу (справа наліво) отримаємо число у вісімковій СС: 1147 (Див. Мал. 2). Отже можна записати:

615 10 =1147 8 .

приклад 6 . Перекладемо число 19673 з десяткової системи числення до шістнадцяткової СС.

19673 16
19664 1229 16
9 1216 76 16
13 64 4
12

Як видно з малюнка Рис.3, послідовним розподілом числа 19673 на 16 отримали залишки 4, 12, 13, 9. У шістнадцятковій системі числення 12 відповідає З, 13 - D. Отже наше шістнадцяткове число - це 4CD9.

Для переведення правильних десяткових дробів (речове число з нульовою цілою частиною) в систему числення з основою s необхідно дане число послідовно помножити на s до тих пір, поки в дробовій частині не вийде чистий нуль, або не отримаємо необхідну кількість розрядів. Якщо при множенні вийде число з цілою частиною, відмінне від нуля, то цю цілу частину не враховувати (вони послідовно зараховуються до результату).

Розглянемо вищевикладене з прикладів.

приклад 7 . Перекладемо число 0.214 із десяткової системи числення до двійкової СС.

0.214
x 2
0 0.428
x 2
0 0.856
x 2
1 0.712
x 2
1 0.424
x 2
0 0.848
x 2
1 0.696
x 2
1 0.392

Як видно з Рис.4, число 0.214 послідовно множиться на 2. Якщо в результаті множення вийде число з цілою частиною, відмінне від нуля, то ціла частина записується окремо (ліворуч від числа), а число записується з цілою нульовою частиною. Якщо ж при множенні вийти число з цілою нульовою частиною, то ліворуч від неї записується нуль. Процес множення триває до тих пір, поки в дробовій частині не вийде чистий нуль або не отримаємо необхідну кількість розрядів. Записуючи жирні числа (Рис.4) зверху вниз отримаємо необхідне число двійковій системі числення: 0. 0011011 .

Отже можна записати:

0.214 10 =0.0011011 2 .

приклад 8 . Перекладемо число 0.125 із десяткової системи числення до двійкової СС.

0.125
x 2
0 0.25
x 2
0 0.5
x 2
1 0.0

Для приведення числа 0.125 з десяткової СС до двійкової, це число послідовно множиться на 2. У третьому етапі вийшло 0. Отже, вийшов наступний результат:

0.125 10 =0.001 2 .

приклад 9 . Перекладемо число 0.214 із десяткової системи числення в шістнадцяткову СС.

0.214
x 16
3 0.424
x 16
6 0.784
x 16
12 0.544
x 16
8 0.704
x 16
11 0.264
x 16
4 0.224

Наслідуючи приклади 4 і 5 отримуємо числа 3, 6, 12, 8, 11, 4. Але в шістнадцятковій СС числам 12 і 11 відповідають числа C і B. Отже маємо:

0.214 10 =0.36C8B4 16 .

приклад 10 . Перекладемо число 0.512 із десяткової системи числення у вісімкову СС.

0.512
x 8
4 0.096
x 8
0 0.768
x 8
6 0.144
x 8
1 0.152
x 8
1 0.216
x 8
1 0.728

Отримали:

0.512 10 =0.406111 8 .

приклад 11 . Перекладемо число 159.125 із десяткової системи числення до двійкової СС. Для цього переведемо окремо цілу частину числа (Приклад 4) та дробову частину числа (Приклад 8). Далі поєднуючи ці результати отримаємо:

159.125 10 =10011111.001 2 .

приклад 12 . Перекладемо число 19673.214 із десяткової системи числення в шістнадцяткову СС. Для цього переведемо окремо цілу частину числа (Приклад 6) та дробову частину числа (Приклад 9). Далі поєднуючи ці результати отримаємо.