Як перевести 16-розрядне число в десяткове. Системи числення. Переведення з однієї системи до іншої

Шістнадцяткова система числення(також — шістнадцятковий код) є позиційною системою числення з цілою чисельною підставою 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). При цьому зміна поточної системи числення автоматично робить переклад.

Калькулятор дозволяє переводити цілі та дробові числа з однієї системи числення до іншої. Підстава системи числення може бути менше 2 і більше 36 (10 цифр і 26 латинських букв все-таки). Довжина чисел не повинна перевищувати 30 символів. Використовуйте символ для введення дробових чисел. або, . Щоб перевести число з однієї системи в іншу, введіть вихідне число в перше поле, основу вихідної системи числення в друге та основу системи числення, в яку потрібно перевести число, в третє поле, після чого натисніть кнопку "Отримати запис".

Початкове число записано в 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 -ой системі числення.

Хочу отримати запис числа в 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 -ой системі числення.

Отримати запис

Виконано перекладів: 1237177

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

Системи числення поділяються на два типи: позиційніі не позиційні. Ми користуємося арабською системою, вона є позиційною, а є ще римська – вона якраз не позиційна. У позиційних системах становище цифри у числі однозначно визначає значення цього числа. Це легко зрозуміти, розглянувши на прикладі якогось числа.

Приклад 1. Візьмемо число 5921 у десятковій системі числення. Пронумеруємо число праворуч наліво починаючи з нуля:

Число 5921 можна записати в наступному вигляді: 5921 = 5000 +900 +20 +1 = 5 · 10 3 +9 · 10 2 +2 · 10 1 +1 · 10 0 . Число 10 є характеристикою, що визначає систему числення. В якості ступенів взято значення позиції даного числа.

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

Число 1234.567 можна записати в наступному вигляді: 1234.567 = 1000+200+30+4+0.5+0.06+0.007 = 1·10 3 +2·10 2 +3·10 1 +4·10 0 +5·10 -1 + 6·10 -2 +7·10 -3 .

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

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

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

Для переведення числа з будь-якої системи числення до десяткової достатньо пронумерувати його розряди, починаючи з нульового (розряд ліворуч від десяткової точки) аналогічно прикладам 1 або 2.

1. Перевести число 1001101.1101 2 в десяткову систему числення.
Рішення: 10011.1101 2 = 1·2 4 +0·2 3 +0·2 2 +1·2 1 +1·2 0 +1·2 -1 +1·2 -2 +0·2 -3 +1·2 - 4 = 16+2+1+0.5+0.25+0.0625 = 19.8125 10
Відповідь: 10011.1101 2 = 19.8125 10

2. Перевести число E8F.2D 16 в десяткову систему числення.
Рішення: E8F.2D 16 = 14·16 2 +8·16 1 +15·16 0 +2·16 -1 +13·16 -2 = 3584+128+15+0.125+0.05078125 = 3727.17578125 10
Відповідь: E8F.2D 16 = 3727.17578125 10

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

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

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

Ціла частина переводиться з десяткової системи числення в іншу систему числення за допомогою послідовного поділу цілої частини числа на основу системи числення до отримання цілого залишку, меншої основи системи числення. Результатом перекладу буде запис із залишків, починаючи з останнього.

3. Перевести число 273 10 у восьмирічну систему числення.
Рішення: 273/8 = 34 і залишок 1, 34/8 = 4 і залишок 2, 4 менший за 8, тому обчислення завершено. Запис із залишків матиме такий вигляд: 421
Перевірка: 4 · 8 2 +2 · 8 1 +1 · 8 0 = 256 +16 +1 = 273 = 273, результат збігся. Отже переклад виконано правильно.
Відповідь: 273 10 = 421 8

Розглянемо переведення правильних десяткових дробів у різні системи числення.

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

Нагадаємо, правильним десятковим дробом називається речове число з нульовою цілою частиною. Щоб перевести таке число в систему числення з основою N потрібно послідовно множити число на N до тих пір, поки дробова частина не обнулиться або не буде отримана необхідна кількість розрядів. Якщо при множенні виходить число з цілою частиною, відмінне від нуля, то ціла частина далі не враховується, тому що послідовно заноситься до результату.

4. Перевести число 0.125 10 у двійкову систему числення.
Рішення: 0.125·2 = 0.25 (0 - ціла частина, яка стане першою цифрою результату), 0.25·2 = 0.5 (0 - друга цифра результату), 0.5·2 = 1.0 (1 - третя цифра результату, оскільки дробова частина дорівнює нулю , то переклад завершено).
Відповідь: 0.125 10 = 0.001 2

1. Порядковий рахунок у різних системах числення.

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

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

Оскільки ми маємо десяткову систему числення, ми маємо 10 символів (цифр) для побудови чисел. Починаємо порядковий рахунок: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Цифри закінчились. Ми збільшуємо розрядність числа і обнулюємо молодший розряд: 10. Потім знову збільшуємо молодший розряд, доки не закінчаться всі цифри: 11, 12, 13, 14, 15, 16, 17, 18, 19. Збільшуємо старший розряд на 1 і обнулюємо молодший: 20. Коли ми використовуємо всі цифри для обох розрядів (отримаємо число 99), знову збільшуємо розрядність числа і обнулюємо розряди: 100. І так далі.

Спробуємо зробити те саме в 2-й, 3-й і 5-й системах (введемо позначення для 2-ї системи, для 3-ї і т.д.):

0 0 0 0
1 1 1 1
2 10 2 2
3 11 10 3
4 100 11 4
5 101 12 10
6 110 20 11
7 111 21 12
8 1000 22 13
9 1001 100 14
10 1010 101 20
11 1011 102 21
12 1100 110 22
13 1101 111 23
14 1110 112 24
15 1111 120 30

Якщо система числення має основу більше 10, нам доведеться вводити додаткові символи, прийнято вводити літери латинського алфавіту. Наприклад, для 12-річної системи крім десяти цифр нам знадобляться дві літери ( і ):

0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10
11
12 10
13 11
14 12
15 13

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

Щоб перевести ціле позитивне десяткове число в систему числення з іншою основою, потрібно це число поділити на основу. Отримане приватне знову розділити на основу, і далі до тих пір, поки приватна не виявиться меншою за основу. В результаті записати в один рядок останнє приватне та всі залишки, починаючи з останнього.

приклад 1.Перекладемо десяткове число 46 двійкову систему числення.

приклад 2.Переведемо десяткове число 672 у вісімкову систему числення.

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

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

Щоб навчитися переводити числа з будь-якої іншої системи в десяткову, проаналізуємо звичний нам запис десяткового числа.
Наприклад, десяткове число 325 - це 5 одиниць, 2 десятки та 3 сотні, тобто.

Так само і в інших системах числення, тільки множити будемо не на 10, 100 і ін., а на ступеня заснування системи числення. Наприклад візьмемо число 1201 у трійковій системі числення. Пронумеруємо розряди праворуч наліво починаючи з нуля і представимо наше число як суму творів цифри на трійку в міру розряду числа:

Це десятковий запис нашого числа, тобто.

приклад 4.Переведемо до десяткової системи числення восьмеричне число 511.

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

4. Переведення з двійкової системи до системи з основою «ступінь двійки» (4, 8, 16 тощо).

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

Наприклад, Переведемо двійкове число у вісімкову систему. Для цього розіб'ємо його на групи по 3 символи починаючи праворуч (т.к. ), а потім скористаємось таблицею відповідності та замінимо кожну групу на нову цифру:

Таблицю відповідності ми навчилися будувати у п.1.

0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7

Тобто.

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

0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

5.Переклад із системи з основою «ступінь двійки» (4, 8, 16 і т.д.) у двійкову.

Цей переклад аналогічний до попереднього, виконаного у зворотний бік: кожну цифру ми замінюємо групою цифр у двійковій системі з таблиці відповідності.

Приклад 7.Перекладемо шістнадцяткове число С3A6 двійкову систему числення.

І тому кожну цифру числа замінимо групою з 4 цифр (т.к. ) з таблиці відповідності, доповнивши за необхідності групу нулями спочатку:



Здає ЄДІ і не тільки ...

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

Наприклад, потрібно перевести число 810 10 у двійкову систему:

Результат записуємо у зворотному порядку знизу нагору. Виходить 81010 = 11001010102

Якщо потрібно переводити в двійкову систему досить великі числа, то сходи поділів набувають розміру багатоповерхового будинку. І як тут зібрати всі одиночки з нулями і жодної не пропустити?

У програму ЄДІ з інформатики входять кілька завдань, пов'язаних із переведенням чисел з однієї системи до іншої. Як правило, це перетворення між 8- та 16-річними системами та двійковою. Це розділи А1, В11. Але є завдання з іншими системами числення, як, наприклад, у розділі B7.

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

Таблиця ступенів числа 2:

2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10
2 4 8 16 32 64 128 256 512 1024

Вона легко виходить множенням попереднього числа на 2. Так що якщо пам'ятаєте не всі ці числа, інші неважко отримати в розумі з тих, які пам'ятаєте.

Таблиця двійкових чисел від 0 до 15 з 16-річним поданням:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 1 2 3 4 5 6 7 8 9 A B C D E F

Відсутні значення теж легко обчислити, додаючи по 1 до відомих значень.

Переклад цілих чисел

Отже, почнемо з переведення одразу в двійкову систему. Візьмемо те саме число 810 10 . Нам потрібно розкласти це число на доданки, рівні ступеням двійки.

  1. Шукаємо найближчий до 810 ступінь двійки, що не перевищує його. Це 29 = 512.
  2. Віднімаємо 512 з 810, отримуємо 298.
  3. Повторимо кроки 1 і 2, доки залишиться 1 чи 0.
  4. У нас вийшло так: 810 = 512 + 256 + 32 + 8 + 2 = 2 9 + 2 8 + 2 5 + 2 3 + 2 1 .
Далі є два способи, можна використовувати будь-який із них. Як легко побачити, що в будь-якій системі числення її основа завжди 10. Квадрат основи завжди буде 100, куб 1000. Тобто ступінь основи системи числення - це 1 (одиниця), і за нею стільки нулів, яка ступінь.

Спосіб 1: Розставити 1 за тими розрядами, які вийшли показники у доданків. У нашому прикладі це 9, 8, 5, 3 та 1. У решті місць стоятимуть нулі. Отже, ми отримали двійкове уявлення числа 81010 = 11001010102. Одиниці стоять на 9-му, 8-му, 5-му, 3-му і 1-му місцях, вважаючи праворуч наліво з нуля.

Спосіб 2: Розпишемо доданки як ступені двійки один під одним, починаючи з більшого.

810 =

А тепер складемо ці сходи разом, як складають віяло: 1100101010 .

От і все. Принагідно також легко вирішується завдання «скільки одиниць у двійковому записі числа 810?».

Відповідь - стільки, скільки доданків (ступенів двійки) у його поданні. У 810 їх 5.

Тепер приклад простіший.

Переведемо число 63 у 5-річну систему числення. Найближчий до 63 ступінь числа 5 - це 25 (квадрат 5). Куб (125) буде вже багато. Тобто 63 лежить між квадратом 5 та кубом. Тоді підберемо коефіцієнт для 5 2 . Це два.

Отримуємо 63 10 = 50 + 13 = 50 + 10 + 3 = 2 * 5 2 + 2 * 5 + 3 = 223 5 .

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

Переведемо до двійкової системи число 547 8 .

547 8 = 101 100 111
5 4 7

Ще одне, наприклад, 7D6A 16 .

7D6A 16 = (0)111 1101 0110 1010
7 D 6 A

Переведемо до 16-річної системи число 7368. Спочатку цифри запишемо трійками, а потім поділимо їх на четвірки з кінця: 736 8 = 111 011 110 = 1 1101 1110 = 1DE 16 . Переведемо до 8-річної системи число C25 16 . Спочатку цифри запишемо четвірками, а потім поділимо їх на трійки з кінця: C25 16 = 1100 0010 0101 = 110 000 100 101 = 6045 8 . Тепер розглянемо переведення назад до десяткової. Він не уявляє, головне не помилитися в розрахунках. Розкладаємо число на многочлен зі ступенями основи та коефіцієнтами при них. Потім все множимо та складаємо. E68 16 = 14 * 16 2 + 6 * 16 + 8 = 3688. 732 8 = 7 * 8 2 + 3 * 8 + 2 = 474 .

Переклад негативних чисел

Тут потрібно врахувати, що число буде представлено додатковому коді. Для переведення числа в додатковий код потрібно знати кінцевий розмір числа, тобто у що ми хочемо його вписати - в байт, два байти, в чотири. Старший ряд цифр означає знак. Якщо там 0, число позитивне, якщо 1, то негативне. Ліворуч число доповнюється знаковим розрядом. Беззнакові (unsigned) числа ми розглядаємо, вони завжди позитивні, а старший розряд у яких використовується як інформаційний.

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

Отже, переведемо число -79 у двійкову систему. Число займе у нас один байт.

Перекладаємо 79 в двійкову систему, 79 = 1001111. Доповнимо зліва нулями до розміру байта, 8 розрядів, отримуємо 01001111. Змінюємо 1 на 0 і 0 на 1. Отримуємо 10110000. До результату додаємо0 1, отримуємо0. Принагідно відповідаємо питанням ЄДІ «скільки одиниць у двійковому поданні числа -79?». Відповідь – 4.

Додаток 1 до інверсії числа дозволяє усунути різницю між уявленнями +0 = 00000000 та -0 = 11111111. У додатковому коді вони будуть записані однаково 00000000.

Переклад дробових чисел

Дробові числа переводяться способом, оберненим поділу цілих чисел на основу, яку ми розглянули на самому початку. Тобто за допомогою послідовного множення на нову основу зі збиранням цілих частин. Отримані при множенні цілі частини збираються, але не беруть участь у наступних операціях. Примножуються лише дробові. Якщо вихідне число більше 1, то ціла та дробова частини перекладаються окремо, потім склеюються.

Перекладемо число 0,6752 у двійкову систему.

0 ,6752
*2
1 ,3504
*2
0 ,7008
*2
1 ,4016
*2
0 ,8032
*2
1 ,6064
*2
1 ,2128

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

Виходить 0,6752 = 0,101011.

Якщо число було 5,6752, то у двійковому вигляді воно буде 101,101011.