Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

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

Работа добавлена на сайт samzan.net: 2016-03-30

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 20.5.2024

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

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

План.

  1.  Форматы представления данных в памяти ЭВМ.
    1.  Представление чисел в форме с фиксированной точкой
    2.  Представление чисел в форме с плавающей точкой
  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);

Формат

Число разрядов

Диапазон

знаковый

беззнаковый

Байт

8

-128; 127

0; 255

Слово

16

-32768; 32767

0; 65535

Дв. слово

32

-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 значащими цифрами).

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

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

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

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

-  представление абсолютной величины и знака отдельно (или прямой код);

-  представление отрицательных чисел в дополнительном коде;

-  представление отрицательных чисел в обратном коде.

В прямом коде старший разряд кодирует знак числа, а остальные – модуль числа. Условно принято знак “+” обозначать 0 и знак “-” - 1. Например, число +10 в прямом коде будет представляться как 01010пк, а -10 11010пк.

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

Пример: представить число -10 в дополнительном коде.

Двоичный эквивалент +10 = 01010пк.

Дополнительный код получается следующим образом:

10101       

+          1

10110дк = -10

Можно предложить второй способ перехода к дополнительному коду: необходимо записать n-битный модуль этого числа, оставить без изменения все нули в младших разрядах и первую младшую единицу, а остальные разряды проинвертировать.

Пример: представить число -50 в дополнительном коде.

Двоичный эквивалент +50 = 00110010пк.

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

11001101       

+                1

11001110дк = -50

Упражнение:  представить число -33 в дополнительном коде. Должно получиться 1|1011111дк.

Получить дополнительный код отрицательного числа Х можно по третьему правилу: Хдк=2n-|X|, где n – длина машинного слова.

Пример: представить число -50 в дополнительном коде (где n =8).

2n=28=64=1000000002

|X|=50=1100102

100000000

-     110010

 11001110дк

Из правил можно сделать вывод, что положительные числа в случае увеличения числа разрядов дополняются слева нулями, а отрицательные – единицами.

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

Пример, возьмем то же самое число -10. Двоичный эквивалент +10 = 01010пк, откуда получаем обратный код -10: 10101ок.

Необходимо отметить, что для положительных чисел прямой, обратный и дополнительный коды совпадают, а для отрицательных - нет.

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

Как известно все математические операции в процессоре сводятся к операциям сложения, сдвига кода и логическим операциям. Использование дополнительного и обратного кодов позволяет заменить вычитание, умножение, деление  на используемые операции.

6




1. Табасараны.html
2. Кавос Катерин Альбертович
3. тематизация и реализация знаний полученных при изучении общепрофессиональных и специальных дисциплин в усл
4. тематики та обчислювальних методів Інституту проблем машинобудування ім
5. Курсовая работа- Меры процессуального принуждения
6. Тема- Б. Житков Про обезьянку.html
7. Лабораторная работа ’2 Методическое пособие по курсам Технические средства автоматизации и А.html
8. Лабораторна робота 2Пошук лінгвістичної інформації в мережі Internet Мета робот
9. Ветвь не в силах постичь что она лишь часть дерева
10. реферату- Чинний порядок оподаткування прибуткуРозділ- Фінанси Чинний порядок оподаткування прибутку З п
11. Проблема единицы анализа деятельности и подходы к ее решению.html
12. Тема 5. Вещное право
13. Структура ЭВМ Основные характеристики ЭВМ Режимы работы ЭВМ Системы счисления Перевод чисел и.
14. Функции и строение головного мозга2
15. Научные основы кормления диких птиц при их разведении в неволе
16. Перлина німецького бароко Дрезден в програмі туру Можливість відвідати фешенебельний курорт Карлові Ва
17. Бальзамы
18. Администрирование ОС Windows 7
19. МЕТОДЫ НЕЙРОПСИХОЛОГИЧЕСКОЙ ДИАГНОСТИКИ Л И Вассерман, С А Дорофеева, Я А Меерсон
20. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата філософських наук Киї1