Представление целых и вещественных чисел в памяти ЭВМ



Структура памяти компьютера

Известно, вся информация, которая попадает в компьютер, преобразуется в последовательность электрических импульсов. Наличие импульса принято условно обозначать "1", а его отсутствие - 0. Такой способ кодирования информации называется двоичным или бинарным. Один двоичный символ получил название бит. (bit -от английского binary digit - "двоичная цифра"). Двоичное кодирование автоматически дает способ кодирования чисел в двоичной системе счисления.

Вся информация, вводимая в компьютер и возникающая в процессе его работы, хранится в памяти компьютера. Упрощенно память можно представить себе как страницу, состоящую из отдельных строк. Каждая такая строка называется ячейкой памяти и разделяется на разряды. Содержимым любого разряда может быть либо 0, либо 1. Таким образом, в любую ячейку памяти записывается некоторый набор из нулей и единиц, который называется машинным словом.

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

При считывании хранящегося в ячейке машинного слова содержимое ячейки не изменяется. А вот при записи в ячейку информации прежнее содержимое ячейки стирается.

Существуют два основных формата представления чисел в памяти компьютера. Формат представления числа – это способ отображения содержимого в ячейке памяти.

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

Представление целых неотрицательных чисел.

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

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

Целые числа без знака обычно занимают в памяти один, два или четыре байта и принимают в однобайтовом формате значения от 00000000 до 11111111 (в двоичной системе счисления), а, например, в двухбайтовом формате — от 00000000 00000000 до 11111111 11111111. Таким образом, множество целых, которые могут быть представлены в памяти компьютера, ограничено, Диапазон значений зависит от размера области памяти, используемой для размещения чисел.

Если для хранения целого неотрицательного числа отводится одна ячейка памяти длиной 8 битов, то, например, двоичное число 100100112 будет храниться в такой ячейке памяти следующим образом:

1 0 0 1 0 0 1 1

Минимальное число соответствует 8 нулям и, численно равно 0:

0 0 0 0 0 0 0 0

Максимальное же значение целого неотрицательного числа получается в том случае, когда во всех разрядах будут стоять единицы, что соответствует десятичному числу 255:

1 1 1 1 1 1 1 1

Таким образом, диапазон изменения целых неотрицательных чисел при хранении в однобайтовой ячейке памяти - от 0 до 255.

Чтобы получить внутреннее представление целого положительного числа N, хранящегося в k-разрядной ячейке памяти, необходимо:

1) перевести число N в двоичную систему счисления;

2) полученный результат дополнить слева незначащими нулями до k разрядов.

Получим, например внутреннее представление целого числа 1607 в 2-х байтовой ячейке. Для этого сначала переведем число в двоичную систему: 160710= 110010001112. Внутреннее представление этого числа в ячейке будет следующим:

0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1

Диапазон изменения целых неотрицательных чисел при хране­нии в двухбайтовой ячейке памяти - от 0 до 65535.

Представление целых чисел со знаком.

Для хранения целых чисел со знаком отводится две ячейки памяти (16 битов), при этом старший (крайний левый) разряд отводится под знак числа. Если число положительное, то в этот разряд записывается 0, если отрицательное, - то 1. Например, десятичное число 235610 будет представляться в двоичном виде как 1001001101002, тогда в 16-разрядной сетке оно будет представлено следующим образом:

0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1

Представление положительных чисел с учетом знака называется прямым кодом числа.

Для представления отрицательных чисел используется так называемый дополнительный код. Он позволяет заменить арифметическую операцию вычитания операцией сложения (как известно все математические операции в процессоре сводятся к сложению).

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

Для хранения целых чисел используется также формат длинных целых со знаком. Для хранения таких чисел отводится 4 ячейки памяти (32 бита).

Достоинством представления чисел в формате с фиксированной запятой является простота и наглядность представления чисел, а недостатком - относительно небольшой диапазон представления величин.

Представление вещественных чисел.

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

В этом случае число А представляется в виде А=m • qn, где:

m - мантисса числа;

q - основание системы счисления;

n - порядок числа.

Например, 123,45 = 0,12345 • 103 (здесь m = 0,12345, n = 3, q = 10).

Представление числа в форме с плавающей точкой неоднозначно. Например, справедливы следующие равенства:

12,345 = 0,0012345 х 104 = 1234,5 х 10-2 = 0,12345 х 102

Чаще всего в ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в таком представлении должна удовлетворять условию: 0,lp < m < 1р. Иначе говоря, мантисса меньше 1 и первая значащая цифра - не ноль (р - основание системы счисления).

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

Примеры нормализованного представления чисел:

753,15 = 0,75315 х 103;

0,000034 = - 0,34x 10-4

Число в формате с плавающей запятой занимает в памяти компьютера 4, 8, 6 или 10 байтов.). При этом отдельно выделяются разряды для хранения знака числа, знака порядка, порядка и самой мантиссы.

                     

 

 

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

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

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

Посмотрим на примере числа 6,2510, как записываются числа в нормализованном виде в четырехбайтовом формате с семью разрядами для записи порядка.

6,2510=110,012=0,11001×211

31 30             23 22 21             2 1 0
0 0 0 0     1 1 1 1 0 0 1 0   0 0 0

Следует учитывать, что способ представления вещественного числа в ячейке зависит от архитектуры конкретной ЭВМ.


Дата добавления: 2018-09-22; просмотров: 3088; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!