Подання чисел у шістнадцятковій системі числення. Шістнадцятковий код

Тепер чекає зовсім легка прогулянка, пов'язана із шістнадцятковою системою числення. У цьому випадку, сподіваємося, ви підозрюєте і, мабуть, справедливо, що у нас тепер має бути 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).

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

Багато користувачів комп'ютерів розуміють, що комп'ютер працює у двійковій системі числення. Традиційно стану двійкової системинадаються цифрами 0 і 1, хоча, якщо говорити точніше, кожен стан позначає наявність або відсутність сигналу, тобто правильніше буде назвати стани "вимкнено" і "включено", або "ні" і "так". Стану «вимкнено» чи «ні» відповідає цифра 0, а стану «включено» чи «так» цифра 1. Простим користувачам зазвичай немає необхідності повністю розуміти пристрій комп'ютера, проте двійкова система числення дається взнаки у вигляді різних обмежень заснованих на ступені двійки . Більш компактний варіант двійкової системи називають шістнадцятковою. Число шістнадцять є четвертим ступенем числа два. З цього випливає, що можна досить просто переводити довгі двійкові послідовності з нулів і одиниць у короткі шістнадцяткові. Для цього достатньо розбити двійкову послідовність на групи по чотири розряди (цифри) починаючи з молодшого розряду (праворуч) та замінити кожну групу на відповідне шістнадцяткове значення.

Шістнадцяткову систему прийнято використовувати для зручності сприйняття двійкових даних, тому що переклади з шістнадцяткової системи в двійкову та назад здійснюються простою заміною рядків. Комп'ютер працює виключно з двійковими послідовностями, а шістнадцятковий запис цієї послідовності в чотири рази компактніший, оскільки у цієї системи основа 16 (2 16), а двійкова 2. Двійкова послідовність може бути досить громіздкою. Наприклад, запис числа 513 вимагає десять двійкових розрядів (1000000001), а шістнадцятковій лише три (201). Тим не менш, для представлення будь-яких шістнадцяткових чисел потрібно шістнадцять різних символів, а не десять, які використовуються у звичній нам десятковій системі числення. Перші десять символів це символи в інтервалі від 0 по 9, інші це літери латинського алфавіту в інтервалі від A до F. Букви зазвичай (але не завжди) пишуть у верхньому регістрі (великі) у шістнадцятковому записі числа. Перші десять символів (від 0 до 9) записуються аналогічно цифрам у десятковій системі числення та відповідають їм. Літери в інтервалі від A до F відповідають значенням в інтервалі від 10 до 15.

Розглянемо відповідність чисел від 0 по 15 шістнадцятковій та двійковій системам числення.

Десятковий запис Шістнадцятковий запис Двійковий запис
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111

Записи 10, 11 і т. д. у десятковій, двійковій та шістнадцятковій системах не відповідають один одному. Розглянемо невеликий приклад. Нехай у нас є шістнадцяткове число 1A5E. для переведення в двійковий запис досить просто замінити шістнадцяткові розряди на відповідні двійкові групи. Вийде 0001 1010 0101 1110. Якщо прибрати незначні нулі перед числом і записати його без роздільників отримаємо 1101001011110. Для зворотного перекладу розділимо число на групи по чотири розряди починаючи з молодшого (з правої сторони), а також для зручності додамо 4 розряди. Отримаємо 0001 1010 0101 1110. Замінимо групи на відповідні шістнадцяткові значення, отримаємо 1A5E.

Для переведення шістнадцяткового числа в десяткове уявлення можна скористатися схемою, за якою ми записуємо десяткові числа. У десятковому числі кожен розряд позначає відповідний ступінь числа десять починаючи з нульової зі зростанням праворуч наліво. Наприклад, десяткове число 123 означає 1*10 2 + 2*10 1 + 3*10 0 . Аналогічним методом переведемо число 1A5E до десяткової системи числення. У шістнадцятковій системі числення, так само як і в десятковій, кожен розряд позначає відповідний ступінь числа шістнадцять починаючи з нульової зі зростанням праворуч наліво. Символи 1 і 5 у шістнадцятковій системі числення відповідають значенням 1 та 5 у десятковій, а символи A та E - 10 та 14. Тоді 1A5E можна подати у десятковій системі числення як 1*16 3 + 10*16 2 + 5*16 1 + 14 * 16 0 = 6750. Однак для оцінки шістнадцяткових чисел зовсім не обов'язково переводити їх у десяткові. Правила порівняння, складання та множення в цій системі такі ж як і в десятковій, головне не забувати, що кожен розряд може містити значення від 0 до 15. Для більш швидкого переведення числа між системою числення можна скористатися стандартним калькулятором у Windows, для цього достатньо в розширеному режимі калькулятора вибрати систему числення, ввести в ній число та вибрати потрібну систему числення, в якій слід відобразити результат.

Так як шістнадцяткові числа, що складаються тільки з чисел, легко сплутати з десятковими, їх зазвичай позначають так, щоб було ясно, що використовується саме шістнадцятковий запис. Шістнадцяткові записи зазвичай позначають або додаванням у кінець малої літери „h”, або приставки „0x” перед записом числа. Таким чином, шістнадцяткове число 1A5E може бути записане як 1A5Eh або 0x1A5E, де „h” на кінці або „0x” на початку позначають, що використовується шістнадцятковий запис.

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

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

Існують позиційні та не позиційні системи числення. Арабська система числення, якою ми користуємося у повсякденному житті, є позиційною, а римська – ні. У позиційних системах числення позиція числа однозначно визначає величину числа. Розглянемо це з прикладу числа 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). Далі поєднуючи ці результати отримаємо.

Виникла у стародавньому Вавилоні. В Індії система працює у вигляді десяткової позиційної нумерації з використанням нуля, у індусів цю системучисел запозичила арабська нація, вони, своєю чергою, взяли європейці. У Європі цю систему почали називати арабською.

Позиційна системачисленнязначення всіх цифр залежить від позиції (розряду) цієї цифри в числі.

Приклади, стандартна десяткова система числення – це позиційна система. Припустимо, дано число453 . Цифра 4 позначає сотні і відповідає числу400, 5 - Кількість десятків і відповідає значенню50 , а 3 — одиниці та значення3 . Легко помітити, що зі збільшенням розряду зростає значення. Таким чином, задане числозапишемо у вигляді суми400+50+3=453.

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

Шістнадцяткова система числення(шістнадцяткові числа) - позиційна система числення. Підставою шістнадцяткової системи численняє число 16.

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

Першими десятьма цифрами із шістнадцяти шістнадцяткових цифр є стандартний інтервал 0 - 9 , наступні шість цифр виражають за допомогою перших літер латинського алфавіту: A, B, C, D, E, F. Переведення з шістнадцяткової системи в двійкову систему та в зворотний бікроблять аналогічно процесу для вісімкової системи.

Застосування шістнадцяткової системи числення.

Шістнадцяткову систему числення досить добре використовують у сучасних комп'ютерах, наприкладз її допомогою вказують колір: #FFFFFF- білий колір.

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

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

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

Наприклад, переведемо шістнадцяткове число 5A3у десяткове. Тут 3 цифри. Виходячи з вище сказаного правила, приведемо його до виду суми ступенів з підставою 16:

5A3 16 = 3 · 16 0 +10 · 16 1 +5 · 16 2 = 3 · 1 +10 · 16 +5 · 256 = 3 +160 +1280 = 1443 10

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

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

Наприклад:

010110100011 2 = 0101 1010 0011 = 5A3 16

Таблиця переказу чисел.

Алгоритм переведення чисел з однієї системи числення до іншої.

1. З десяткової системи числення:

  • ділимо число на основу перекладеної системи числення;
  • знаходимо залишок від поділу цілої частини числа;
  • записуємо всі залишки від поділу у зворотному порядку;

2. З двійкової системи числення:

  • для переведення в десяткову систему числення знаходимо суму творів підстави 2 на відповідний ступінь розряду;
  • для переведення числа у вісімкову розбиваємо число на тріади.

Наприклад, 1000110 = 1000110 = 1068

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

Наприклад, 1000110 = 1000110 = 4616.

Таблиці для перекладу:

Двійкова СС

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

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Двійкова СС