- •1.3. Представлення даних
- •1.3.1. Двійкові числа
- •1.3.1.1. Беззнакові цілі двійкові числа
- •1.3.1.2. Перетворення двійкових беззнакових чисел в десяткові числа
- •1.3.1.3. Перетворення беззнакових десяткових цілих чисел в двійкові
- •1.3.2. Додавання двійкових чисел
- •1.3.3. Розмір пам'яті, необхідний для зберігання цілих чисел
- •1.3.4. Шістнадцяткові числа
- •1.3.1.4. Перетворення беззнакових шістнадцятиричних чисел в десяткові
- •1.3.1.5. Перетворення беззнакових десяткових чисел в шістнадцяткові
- •1.3.5. Цілі числа зі знаком
- •1.3.5.1. Двійковий додатковий код
- •1.3.1.7. Якщо старший біт двійкового числа дорівнює 0, значить перед нами позитивне число. Воно перетворюється в десятковий еквівалент за аналогією з беззнако ¬ вимі двійковими числами.
- •1.3.6. Подання символьних даних
1.3.4. Шістнадцяткові числа
З багаторозрядними двійковими числами дуже важко працювати, оскільки їх неве ¬ роятно важко аналізувати. Тому при поданні двійкових чисел в ассемблерной програмі і відладчик зазвичай використовується шістнадцяткова форма запису. Кожна цифра в шістнадцятковому числі представляє собою 4 біта, а 2 шістнадцяткові цифри разом складають I байт.
Одне шістнадцяткове число може приймати значення від 0 до 15, тому, кро ¬ ме чисел 0 ... 9, для відображення значень від 10 до 15 використовують символи від А до V: А = 10, В = 11, С = 12, і = 13, Е = 14, Г = 15. У табл. 1.8 показано, як різні чотирьох ¬ бітові послідовності переводяться в десяткові і шістнадцяткові значення.
Часто для більшої наочності запису двійкових чисел групи з 4 бітів (або тетра ¬ ди) відокремлюють один від одного пробілом. Тоді перевести число з двійкової форми в шест-надцатерічную не складе особливих труднощів.
1.3.1.4. Перетворення беззнакових шістнадцятиричних чисел в десяткові
У шістнадцятковій системі числення, кожен розряд числа (чи цифра) пред ¬ вить відповідне його становищу значення ступеня числа 16. Це потрібно враховувати ¬ вать при перетворенні шістнадцятиричних чисел в десяткові. Для початку ми повинні пронумерувати шістнадцяткові цифри справа наліво. Для 4-розрядного шестнадца-терічного числа це буде виглядати так: D ^ DjD ^ D0. Тоді еквівалентну десяткове
значення можна визначити за допомогою наступної формули:
dec = (D3 X 163) + (D2 X 162) + (D, X 16 ') + (Dq X 16 °).
Цю формулу можна узагальнити для довільного / 7-розрядного шістнадцяткового числа:
dec = (Dn_j х 16 "') + (D". _2 х 16 "2) + - + (D {х 16") + (Dq x 16 °).
Наприклад, шістнадцяткове число 1234 одно десятковому числу 4660, так як
(1 х 163) + (2х 162) + (3 х 16 ') + (4 х 16 °) = 4660.
Аналогічно, шістнадцяткове число ЗВА4 одно десятковому числі 15 268, так як:
(Зх 163) + (11 х 162) + (10 х 16 ') + (4 х 16 °) = 15 268. Останній приклад проілюстровано на рис. 1.8.
3 * 163 = 12 288
11 * 162 = 2 816
10 * 161 = 160
| 4 * 16 ° = 1 4
з в А 4 Разом: 15268
Рис. 1.8. Приклад перекладу шістнадцяткового числа на десяткове
У табл. 1.10 наведені значення ступенів числа 16, від 16 ° до 167.
1.3.1.5. Перетворення беззнакових десяткових чисел в шістнадцяткові
Щоб перетворити беззнаковое десяткове число в шістнадцяткове, потрібно виконати декілька послідовних операцій цілочисельного ділення на 16, каж ¬ дий разів зберігаючи залишок у відповідному шістнадцятковому розряді. У табл. 1.11
наведено приклад перетворення десяткового числа 422 у шістнадцяткове.
Зібравши всі шістнадцяткові цифри, отримані в залишку, що перераховані в третій колонці таблиці, і записавши їх у зворотному порядку, одержимо шукане число 1А6. Ви, напевно, вже помітили, що ми використовували такий же алгоритм для перетворення ¬ тання десяткових чисел в двійковим (див. розділ 1.3.1). Насправді цей алгоритм працює при будь-якому значенні бази, а не тільки 2 або 16.
1.3.5. Цілі числа зі знаком
Як ми вже говорили, цілі числа із знаком можуть бути як позитивними, так і негативними. Найчастіше знаковий розряд займає старший біт числа. Якщо його значення дорівнює 0, число вважається позитивним, а якщо 1, то негативною. На рис. 1.9 наведено приклад позитивного і негативного двійкових чисел, распо ¬ лежання в одному байті.
Знаковий розряд
I
Негативне число
Позитивне число
Рис. 1.9. Приклад позитивного і негативного двійкового числа