Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GL00.doc
Скачиваний:
3
Добавлен:
07.08.2019
Размер:
308.22 Кб
Скачать

0.3. Как записываются числа в разных системах счисления в языках программирования.

Си. В качестве числовых констант в языке Си можно использовать 16-ричные, десятичные и восьмеричные числа. 16-ричные числа предваряются префиксом 0x или 0X: 0xD5, 0X1634. Восьмеричные числа предваряются нулем: 0204.

Турбо Ассемблер. Это транслятор языка для записи машинных команд.

Число обязательно должно начинаться с арабской цифры 0 – 9. Когда Турбо Ассемблер встречает в программе число, он сначала анализирует последний символ числа (суффикс). Вот перечень суффиксов (табл. 0.4). Допускаются как прописные, так и строчные буквы.

Таблица 0.4. Суффиксы чисел в языке Ассемблера.

Суффикс

Основание

B – binary

2

O,Q – octal

8

D – decimal

10

H – hexadecimal

16

Если суффикс отсутствует, то число считается десятичным.

Пример. 68, 174d, 956D — десятичные числа, ABCh — ошибка! (Число должно начинаться с цифры, иначе Ассемблер воспринимает его как символическое имя). Чтобы исправить ошибку, нужно предварить такое число нулем. 0ABCh, 174dH, 956Dh, 1011Bh — 16-ричные числа, 1011B — двоичное число.

Упражнение. Определить, какие из следующих чисел правильно записаны на языке Ассемблера, указать для них систему счисления: a) 0A5; b) 102B; c) ffffh; d) 6234; e) 6234h.

На практике суффикс D обычно не используется. Достаточно запомнить, что в программе на языке Ассемблера число должно начинаться с 0 – 9, и не забывать ставить суффиксы H и B у 16-ричных и двоичных чисел.

Казалось бы, приведены излишние подробности. Но при использовании отладчика Turbo Debugger (сокращенно TD) у начинающих нередко возникают непонятные для них ситуации. Отладчик по умолчанию воспринимает числа как 16-ричные. Предположим, отладчик запрашивает адрес — вводим, допустим, число 180с (без суффикса h) — всё в порядке (отображается информация, расположенная по адресу 180Ch). Но если вводим 180d, то с удивлением видим, что отладчик отображает информацию, начиная с адреса 00B4h, а если вводим 1A0D, то отладчик выдает сообщение: Syntax error (синтаксическая ошибка), и обращение к Справке (Help) ничего не проясняет. Теперь вы должны понимать причины такой реакции отладчика.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]