- •3.Архитектура компьютеров
- •3.1.Машинные слова и байты
- •3.2.Коды с обнаружением и исправлением ошибок
- •3.3. Представление данных в компьютерах
- •3.4. Способы адресации данных
- •3.5. Операции, выполняемые компьютерами
- •3.6. Системы команд компьютеров
- •3.7. Режимы работы компьютеров
- •3.8. Средства мультипрограммирования
- •3.10. Привилегированные операции и состояния процессора
- •3.11. Организация прерывания программ
- •3.12. Средства защиты памяти
3.3. Представление данных в компьютерах
Компьютеры оперируют с данными трех основных типов: числами, строками символов и логическими значениями. Отметим, что адреса относятся к типу числовых данных.
Двоичные числа. Основной формой представления числовых значений в компьютерах являются двоичные числа. Двоичное число – это значение, представляемое в двоичной системе счисления. Числовые значения могут быть двух типов: целые и действительные. Для представления целых значений и выполнения операций над ними используются целые двоичные числа, а для действительных значений – числа с плавающей запятой.
Целое двоичное число имеет следующий формат:
±
Цифровые разряды (3.1)
.
Разряд с номером n является знаком числа: знак плюс кодируется цифрой 0, знак минус – цифрой 1. Разряды от (n-1) до 0 являются цифровыми. Запятая фиксируется после младшего разряда с номером 0. Формат (3.1) обеспечивает представление целых значений в диапазоне [–(2n–1); +(2n–1)]. Отсюда видно, что число цифровых разрядов процессора определяет диапазон значений, которые могут быть представлены в формате (3.1). Увеличение количества цифровых разрядов процессора на единицу расширяет диапазон представления в два раза.
Выполнение операций над целыми числами, изображаемыми словами фиксированной длины, имеет следующие особенности. Операции сложения и вычитания определены только в том случае, если результат может быть представлен в n цифровых разрядах, т.е. если результат |C |<2n. В противном случае говорят, что результат переполняет разрядную сетку процессора. Если |C |≥2n, в процессоре формируется признак переполнения, используемый для управления ходом вычислительного процесса, например для прекращения вычислений. Произведение состоит из 2n цифровых разрядов. Поскольку результат должен представляться n-разрядным значением, используется следующий способ формирования результата:
2n-1 n n–1 0
.

Старшие разряды Младшие разряды
Старшие n
разрядов произведения можно отбросить,
если они равны нулю, т.е. когда произведение
|A
B|≥2n
рассматривается как переполнение
разрядной сетки. Результат деления
целых чисел A и
B – целая часть
от деления A на
B, т.е. C=A
(mod B).
Результат определен при любых значениях
A и B,
кроме B=0. последний
случай фиксируется как переполнение
при делении.
В компьютерах используются целые числа с длиной 16, 32 и 64 двоичных разряда. Кроме того в компьютерах общего применения могут использоваться целые числа без знака, количество двоичных разрядов в которых равно 8, 16, 32 и 64 двоичных разряда.
В
настоящее время числа с плавающей
запятой (точкой) строятся на основе
стандарта IEEE
754, определяющего три формата чисел (рис
3.1): с одинарной точностью (32 бита), с
двойной точностью (64 бита) и с повышенной
точностью (80 битов). Все форматы начинаются
со знакового бита числа: 0 определяет
положительное число, а 1 – отрицательное.
Затем указывается значение порядка:
для чисел с одинарной точностью порядок
указывается со смещением 127, а для чисел
с двойной и повышенной точностью – со
смещением 1023. когда порядок указывается
со смещением, значение порядка в числе
с одинарной точностью от 0 до 126
соответствуют отрицательному порядку,
значение 127 – нулевому порядку, а значения
от 128 до 255 – положительному порядку
числа. Стандарт IEEE
754 определяет в качестве основания для
показателя число 2. Однако в компьютерах
могут использоваться в качестве основания
числа 2, 4, 8 и 16. Чем больше длина порядка
и чем больше основание порядка, тем шире
диапазон значений, представляемых
числами с плавающей запятой. За порядком
числа следует мантисса, длина которой
определяет точность представления
действительных чисел. Чем больше длина
мантиссы, тем выше точность представления
значений. В рассматриваемом стандарте
значение 1 в старшем разряде нормализованной
мантиссы хранится в неявном виде слева
от запятой (см. рис. 3.1). Поэтому все
нормализованные числа имеют значения
1 и M<2,
где M
– мантисса числа. Стандарт IEEE
754 определяет порядок представления и
способы выполнения операций над
ненормализованными числами и бесконечно
большими значениями, которые мы не будем
рассматривать.
Числовые характеристики стандарта IEEE 754 для чисел с плавающей запятой представлены в табл. 3.2. Как видно из таблицы, нормализованные числа с одинарной точностью представляют значения в диапазоне от 10–38 до 10+38, а при двойной точности – в диапазоне от 10–308 до 10+308.
Таблица 3.2. Характеристики чисел с плавающей запятой стандарта IEEE 754
|
Параметр |
Одинарная точность |
Двойная точность |
|
Количество битов |
32 |
64 |
|
Количество битов в порядке |
8 |
11 |
|
Количество битов в мантиссе |
23 |
52 |
|
Смещение порядка |
127 |
1023 |
|
Значение порядка |
–126 до +127 |
–1022 до +1023 |
|
Минимальное нормализованное число |
2–126 |
2–1022 |
|
Максимальное нормализованное число |
2128 |
21024 |
|
Диапазон десятичных чисел |
10–38 до 1038 |
10–308 до 10308 |
|
Минимальное ненормализованное число |
10–45 |
10–324 |
Текстовые строки. Значительную долю информации, обрабатываемой компьютером, могут составлять текстовые строки – строки символов некоторого алфавита. Типичным примером обработки текстовой информации является трансляция программ, записанных на языках программирования, в машинные программы, представляемые в терминах команд. Отдельный символ (буква, цифра или знак) кодируется байтом, что обеспечивает работу с алфавитами, содержащими до 28 = 256 различных символов. Строка символов представляет собой последовательность байтов следующего вида:
Таблица 3.2. Характеристики чисел с плавающей запятой стандарта IEEE 754
-
Параметр
Одинарная
точность
Двойная
точность
Количество битов
32
64
Количество битов в порядке
8
11
Количество битов в мантиссе
23
52
Смещение порядка
127
1023
Значения порядка
–126 до +127
–1022 до +1023
Минимальное нормализованное число
2-126
2-1022
Максимальное нормализованное число
~2128
~21024
Диапазон десятичных чисел
10-38 до 1038
10-308 до 10308
Минимальное ненормализованное число
~10-45
~10-324
Нормализованные числа с одинарной точностью представляют значения в диапазоне от 10-38 до 1038, а при двойной точности - в диапазоне от 10-308 до 10308.
Текстовые строки. Значительную долю информации, обрабатываемой компьютером, могут составлять текстовые строки – строки символов некоторого алфавита. Типичным примером обработки текстовой информации является трансляция программ, записанных на языках программирования, в машинные программы, представляемые в терминах команд. Отдельный символ (буква, цифра или знак) кодируется байтом, что обеспечивает работу с алфавитами, содержащими до 28=256 различных символов. Строка символов представляет собой последовательность байтов следующего вида:
.
З
A+0 .
. . .
. . .
. . .
. .
Л
![]()
Булевы переменные используются в программах как самостоятельные объекты достаточно редко. Чаще всего они являются элементами наборов – булевых векторов и матриц. К тому же слова информации, представляющие команды и числа, а также поля переменной длины, представляющие строки символов и тексты, часто приходится обрабатывать с использованием логических (булевых) операций, по отношению к которым двоичные разряды слов и полей являются логическими значениями. Таким образом, логические значения 0 и 1 чаще всего участвуют в операциях в виде байтов, слов или полей переменной длины, каждый разряд которых рассматривается как значение булевой переменной. По этой причине логические значения представляются словами и полями переменной длины (3.2). Информация, представляемая словами (3.3), трактуется как нечисловая и в процессе выполнения логических операций все разряды слова
обрабатываются одинаково, как отдельные логические значения, объединенные в один набор. Таким образом, при обработке логических значений логические операции распространяются на байты, слова и поля переменной длины, используемые для представления булевых переменных.
