Главная | Случайная
Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Форматы представления данных в памяти ЭВМ.




Форматы представления данных в памяти ЭВМ. Машинные коды.

План.

1. Форматы представления данных в памяти ЭВМ.

a. Представление чисел в форме с фиксированной точкой

b. Представление чисел в форме с плавающей точкой

2. Машинные коды: прямой, обратный, дополнительный.

Форматы представления данных в памяти ЭВМ.

Для представления чисел (данных) в памяти ЭВМ выделяется оп­ределенное количество битов. В отличие от нумерации разрядов числа биты в байте нумеруются слева направо, начиная с 0. Каждый байт в памяти ЭВМ имеет свой порядковый номер, который называется абсолютным адресам байта. Байт является основной единицей хранения данных, это наименьшая адресуемая единица обмена информации в оперативной па­мяти ЭВМ, то есть минимальная единица обмена информации, имеющая адрес в памяти ЭВМ.

Последовательность нескольких смежных байтов образует поле данных. Количество байтов поля называется длиной поля, а адрес само­го левого байта поля - адресом поля. Обработка информации может вестись либо побайтно, либо полями данных (или форматом данных). Форматы данных показывают, как информация размещается в оперативной памяти и регистрах ЭВМ. Форматы данных различают по длине, типу данных и структуре, а каждое значение, содержащееся в байте может быть интерпретировано по разному:

– кодированное представление символа внешнего алфавита (при вводе и выводе данных);

– целым знаковым или беззнаковым числом (при внутреннем представлении чисел в памяти ЭВМ);

– частью команды или более сложной единицы данных и т.д.

В ЭВМ существуют следующие формы представления целых чисел: полуслово (байт), слово (два последовательных байта, пронумерованных слева направо от 0 до 15), двойное слово (4 байта).

0 7 8 15 16 23 24 31
Байт Байт Байт Байт
Слово Слово
Двойное слово

Если в указанных форматах размещаются числа, то веса их разрядов возрастают справа налево.

В ЭВМ для представления чисел используется естественная (представление числа с фиксированной точкой) и полулогарифмическая (представление числа с плавающей точкой) формы.

Представление чисел в форме с фиксированной точкой.

В используемых представлениях чисел “запятая” или “десятичная точка” - это условный символ, предназначенный для разделения целой и дробной частей числа. Запятая имеет, следовательно, точный математический смысл, независимо от используемой системы счисления, и ее положение нисколько не меняет алгоритм вычислений или форму результата.

Если обрабатываемые числа имеют величину одного порядка, можно фиксировать позицию запятой или точки (такое представление называется представлением с фиксированной точкой). Тогда при обработке чисел в машине нет необходимости учитывать положение (представлять) десятичной точки. И тогда ее положение на уровне программы считается одинаковым и учитывается только в результате.

Существует в основном 2 способа фиксирования десятичной точки:

1) точка располагается справа от младшей цифры числа, и мы имеем целые числа;

2) точка располагается слева от старшей цифры числа, и мы имеем дробные числа по абсолютному значению меньше единицы.

Целые положительные числа можно представлять непосредственно в двоичной системе счисления (двоичном коде). В такой форме представления легко реализуется на компьютере двоичная арифметика.

Если же нужны и отрицательные числа, то знак числа может быть закодирован отдельным битом (обычно это старший бит). Старший разряд является знаковым, если он содержит 1, то число отрицательное, если 0, то число положительное.

При шестнадцатиразрядной сетке мы имеем:

В общем случае диапазон представления целых чисел равен (n – число разрядов в формате):

– для беззнаковых 0 ≤ x ≤ 2n-1 (при n=8 от 0 до 255)

– для знаковых -2n-1 ≤ x ≤ +2n-1-1 (при n=8 от -128 до 127);

Формат Число разрядов Диапазон
знаковый беззнаковый
Байт -128; 127 0; 255
Слово -32768; 32767 0; 65535
Дв. слово -2147483648; 2147483647 0; 4294967295

 

Рис. Формат целых чисел без знака Рис. Формат целых чисел со знаком  
n-1 n-2 1 0 n-1 n-2 1 0  
    . . .       S   . . .      
значащие биты местоположение двоичной точки ^знак   значащие биты   местоположение двоичной точки

Существенным недостатком такого способа представления является ограниченный диапазон представления величин, что приводит к переполнению разрядной сетки при выходе за допустимые границы и искажению результата, например, если рассмотреть пяти разрядную знаковую сетку, то при сложении двух чисел +22 и +13 получим:

Представление чисел в форме с плавающей точкой.

Действительные числа в математике представляются конечными или бесконечными дробями. Однако в компьютере числа хранятся в регистрах и ячейках памяти, которые являются последовательностью байтов с ограниченным количеством разрядов. Следовательно, бесконечные или очень длинные числа усекаются до некоторой длины и в компьютерном представлении выступают как приближенные.

Для представления действительных чисел, как очень маленьких, так и очень больших, удобно использовать форму записи чисел в виде произведения:

А = ± М·n± p

где n - основание системы счисления;

M – мантисса;

р – целое число, называемое порядком (определяет местоположение десятичной точки в числе).

Такой способ записи чисел называется представлением числа с плавающей точкой.

Пример: -245,62=-0,24565·103, 0,00123=0,123·10-2=1,23·10-3=12,3·10-4

Очевидно, такое представление не однозначно.

Если мантисса заключена между n-1 и 1 (т.е. 1/n £ |M| <1), то представление числа становится однозначным, а такая форма назы­вается нормализованной.

Пример: для десятичной системы счисления - 0,1 < |m| < 1 (мантисса - число меньше 1, и первая цифра после запятой отлична от нуля, т.е. значащая).

Действительные числа в компьютерах различных типов записываются по-разному, тем не менее, существует несколько международных стандартных форматов, различающихся по точности, но имею­щих одинаковую структуру. Для основанного на стандарте IEEE – 754 (определяет представление чисел с одинарной точностью (float) и с двойной точностью (double)) представление вещественного числа в ЭВМ используется m+p+1 бит, распределяемые следующим образом: один разряд (S)- используется для знака мантиссы, p – разрядов определяют порядок, m разрядов определяют абсолютную величину мантиссы. Для записи числа в формате с плавающей запятой одинарной точности требуется тридцатидвухбитовое слово. Для записи чисел с двойной точностью требуется шестидесятичетырёхбитовое слово.

1 p-1 0 m-1 0
S Порядок Дробная часть М

Так как порядок может быть положительным или отрицатель­ным, нужно решить проблему его знака. Величина порядка представляется с избытком, т.е., вместо истинного значения порядка хранится число, называемое характеристикой (или смещенным порядком).

Смещение требуется, чтобы не вводить в число еще один знак. Смещённый порядок всегда положительное число. Для одинарной точности смещение принято равным 127, а для двойной точности – 1023 (2p-1-1). В десятичной мантиссе после запятой могут присутствовать цифры 1:9, а в двоичной - только 1. Поэтому для хранения единицы после двоичной запятой не выделяется отдельный бит в числе с плавающей запятой. Единица подразумевается, как и двоичная запятая. Кроме того, в формате чисел с плавающей запятой принято, что мантисса всегда больше 1. То есть диапазон значений мантиссы лежит в диапазоне от 1 до 2.

Примеры:

1) Определить число с плавающей запятой, лежащее в четырёх соседних байтах:

11000001 01001000 00000000 00000000

Разделим двоичное представление на знак (1 бит), порядок (8 бит) и мантиссу (23 бита):

1 10000010 10010000000000000000000

– Знаковый бит, равный 1 показывает, что число отрицательное.

– Экспонента 10000010 в десятичном виде соответствует числу 130. Скорректируем порядок: вычтем число 127 из 130, получим число 3.

– К мантиссе добавим слева скрытую единицу 1,100 1000 0000 0000 0000 0000, перенесем порядок от скрытой единицы вправо на полученную величину порядка: 1100, 1000 0000 0000 0000 0000.

– И, наконец, определим десятичное число: 1100,12 = 12,510

– Окончательно имеем -12,5

2) Определить число с плавающей запятой, лежащее в четырёх соседних байтах:

01000011 00110100 00000000 00000000

– Знаковый бит, равный 0 показывает, что число положительное.

– Экспонента 10000110 в десятичном виде соответствует числу 134. Вычтя число 127 из 134, получим число 7.

– Теперь запишем мантиссу: 1,011 0100 0000 0000 0000 0000

– И, наконец, определим десятичное число: 101101002=18010

Поскольку под мантиссу и порядок отводится определенное число разрядов, соответственно m и p, то можно оценить диапазон чисел, которые можно представить в нормализованном виде в системе счисления с основанием n.

Если m=23 и p=8 (4 байта), то диапазон представленных чисел от 1,5·10-45 до 3,4·10+38 (обеспечивает точность с 7-8 значащими цифрами).

Если m=52 и p=11 (8 байт), то диапазон представленных чисел от 5,0·10-324 до 1,7·10+308 (обеспечивает точность с 15-16 значащими цифрами).

Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов занимает поря­док, тем шире диапазон от наименьшего отличного от нуля числа до наибольшего числа, представимого в компьютере при заданном формате.

При выполнении операций с плавающей точкой возникает меньше проблем с переполнением разрядной сетки, чем для операций с фиксированной точкой. Однако операции с плавающей точкой более сложные, так как они требуют нормализации и денормализации мантисс.




Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2019 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных