Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Кодирование числовой информации




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

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

В естественной форме число представляется целой и дробной частями.

В нормализованной форме число представляется в виде X(P) = M(p)*P^k (M –мантисса числа, P – основание системы счисления, k – порядок числа).

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

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

Для кодирования целых чисел от 0 до 255 достаточно одного байта двоичного кода. Двумя байтами двоичного кода можно закодировать числа от 0 до 65535. Соответственно для трех байтов двоичного кода (24 бит) – 16,5 миллионов различных значений.

Чтобы получить внутреннее представление целого положительного числа N с фиксированной точкой необходимо:

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

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

Например, N = 160710 = 110010001112. Внутреннее представление этого числа в машинном слове будет следующим:

       

Двоичные разряды в машинном слове нумеруются от 0 до 15 справа налево, Старший 15-й разряд в машинном представлении является знаковым. Поэтому для положительного числа он всегда равен нулю. Максимальное число в такой форме равно: 0111 1111 1111 11112 = (2^15 – 1) = 3276710.

Для записи внутреннего представления целого отрицательного числа (-N) необходимо:

1) получить внутреннее представление положительного числа │N│;

2) получить обратный код этого числа заменой 0 на 1 и 1 на 0;

3) к полученному числу прибавить 1.

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

Алгоритм получения дополнительного кода.

1) дополнительный код положительного числа равен прямому коду этого числа;

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

Определим по этим правилам внутреннее представление числа – 160710.

1 способ. 1) 0000 0110 0100 0111

2) 1111 1001 1011 1000

3) +1

Результат 1111 1001 1011 1001

2 способ. 0000 0110 0100 0111 → 1111 1001 1011 1001

Применение дополнительного кода для внутреннего представления отрицательных чисел дает возможность заменить операцию вычитания операцией сложения с отрицательным числом: N – M = N + (– M) = 0.

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

При обработке данных возможен выход двоичных знаков за границу ячейки памяти, отведенной для хранения числа. Например, при сложении N и – N:

0000 0110 0100 0111 1607

1111 1001 1011 1001 - 1607

1 0000 0000 0000 0000 0

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

Для кодирования действительных (вещественных) чисел используют 80 разрядное (10 байт) кодирование. При этом число представляют в нормализованном виде:

300000 = 0.3 * 10**6;

123456789 = 0.123456789 * 10 **9.

Первая часть числа называется мантиссой, а вторая – характеристикой. Большую часть из 80 бит отводят для хранения мантиссы вместе со знаком, а некоторое фиксированное число разрядов отводят для хранения характеристики вместе со знаком.

На математической числовой оси вещественные числа образуют непрерывное множество, т.е. два числа могут сколь угодно близко находиться друг к другу, и на любом отрезке находиться бесконечное множество значений чисел. В машинном же представлении количество возможных значений чисел конечно; для двоичной системы счисления оно определяется как 2↑к, где к – количество двоичных разрядов в представлении мантиссы. Таким образом, в техническом устройстве непрерывный континуум вещественных чисел заменяется машинными кодами, образующими конечное дискретное множество – каждый код оказывается представителем целого интервала значений континуума.

Xi-1 Xi Xi+1 числа в компьютере

 

xi-D xi xi+D числовой континуум

Из данного обстоятельства вытекают ряд следствий:

1. Строгие отношения между числами континуума превращаются в нестрогие для их компьютерных представителей, т.е.

если x1 > x2, то X1 ³ X2;

если x1 = x2, то X1 = X2;

если x1 < x2, то X1 £ X2.

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

3. Появляется понятие наименьшего числа или машинного нуля. Например, в типе Real языка PASKAL любое десятичное число, по модулю меньшее 2,3*10↑(-39) оказывается машинным нулем, т.е. считается равным нулю при сохранении и операциях с ним.

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

 

Номера битов

31 30 29 28 27 26 25 24 23 1 0

                  ……………    

Знак порядка Порядок Знак числа Мантисса

 

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

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

Выводы.

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

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

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

 




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


Дата добавления: 2014-01-06; Просмотров: 1442; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.