Вопрос 3. Типы и форматы операндов.
Машинные команды оперируют данными, которые в этом случае принято называть операндами. К наиболее общим (базовым) типам операндов можно отнести: числа, символы и логические данные. Помимо них, ВМ обеспечивает обработку и более сложных информационных единиц: графических изображений, аудио-, видео- и анимационной информации. Такая информация является производной от базовых типов данных и хранится в виде файлов на внешних запоминающих устройствах. Для каждого типа данных в ВМ предусмотрены определенные форматы.
В вычислительной технике приняты две формы представления чисел:
1. С фиксированной точкой (представление в естественной форме), при котором любое число сможет быть представлено в одном из двух вариантов: представление правильных дробей и целых чисел.
Используется при выполнении операций (как правило, арифметических) над целыми числами.
Знак положительного числа кодируется двоичной цифрой 0, а знак отрицательного числа — цифрой 1.
Числам с ФЗ соответствует запись вида A = ±an–1 ... a1a0a–1a–2 ... a–r. Отрицательные числа обычно представляются в дополнительном коде. Разряд кода числа, в котором размещается знак, называется знаковым разрядом кода.
Разряды, где располагаются значащие цифры числа, называются цифровыми разрядами кода. Знаковый разряд размещается левее старшего цифрового разряда. Положение запятой одинаково для всех чисел и в процессе решения задач не меняется. Хотя запятая и фиксируется, в коде числа она никак не выделяется, а только подразумевается.
В общем случае разрядная сетка ВМ для размещения чисел в форме с ФЗ имеет вид, представленный на рис. 1.10, где m разрядов используются для записи целой части числа и r разрядов — для дробной части
Рис. 1.10. Формат представления чисел с фиксированной запятой
2. С плавающей точкой (представление в нормальной форме). В этом случае число представляется в полулогарифмическом виде:
где S – основание системы счисления,
P – показатель степени (порядок),
g – мантисса числа (правильная дробь)
Т.к. в ЦВМ всегда S = 2(в современных компьютерах16),то этот параметр в представлении опускается (иногда для увеличения диапазона представления принимают S = 2k , где k – целое число, чаще всего k=4, а S=16). В памяти ВМ число хранится в виде:
р показывает, сколько знаков в целой части.
В современных ЦВМ вместо порядка Р используется – характеристика .
Символьная информациякодируется в соответствии со специальными кодировочными таблицами. Наиболее распространенными из них являются:
Американский стандартный код для обмена информацией ASCII,кодирует первые 128 символов (колы 000-127) 8-ми битного кода, вторые 128 символов (коды 128-255) используются для кодировки национальных алфавитов и специальных символов.
Все символы в Unicodeлогически разделяют на 17 плоскостей по 65536 (216) кодов в каждой.Плоскость 0 (0000–FFFF): BMP, BasicMultilingualPlane — основная многоязычная плоскость. Эта плоскость охватывает коды большинства основных символов используемых в настоящее время языков. Каждый символ представляется 16-разрядным кодом.
- Плоскость 1 (10000–1FFFF): SMP, SupplementaryMultilingualPlane — дополнительная многоязычная плоскость.
- Плоскость 2 (20000–2FFFF): SIP, SupplementaryIdeographicPlane — дополнительная идеографическая плоскость.
- Плоскости с 3 по 13 (30000–DFFF) пока не используются.
Плоскость 14 (E0000–EFFFF): SSP, SupplementarySpecial-purposePlane — специализированная дополнительная плоскость.
- Плоскость 15 (F0000–FFFFF): PUA, PrivateUseArea — область для частного использования
- Плоскость 16 (100000–10FFFF): PUA, PrivateUseArea — область для частного использования.
Элементом логических данных является логическая (булева) переменная, которая может принимать лишь два значения: «истина» или «ложь». Кодирование логического значения принято осуществлять битом информации: единицей кодируют истинное значение, нулем — ложное. Как правило, в ВМ оперируют наборами логических переменных длиной в машинное слово. Обрабатываются такие слова с помощью команд логических операций (И, ИЛИ, НЕ и т. д.), при этом все биты об-
обрабатываются одинаково, но независимо друг от друга, то есть никаких переносов между разрядами не возникает.
Строки — это непрерывная последовательность битов, байтов, слов или двойных слов.
Битовая строка может начинаться в любой позиции байта и содержать до 232 битов.