Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Кодирование и форматы представления числовых данных




Формы представления и преобразования информации

В компьютере используются следующие формы представления числовых данных:

· числа с фиксированной запятой (точкой);

· числа с плавающей запятой (точкой);

Представление чисел в форме с фиксированной запятой (точкой) получило название естественной формы числа, представление с плавающей точкой – нормальной формы числа. Под те или иные форматы всегда отводится заранее известное количество разрядов (бит) - 16, 32, и т.д.

 

2.3.1.1. Представление чисел в формате с фиксированной точкой. При представлении числа Х в форме с фиксированной точкой указывается знак числа (sign X) и модуль числа (mod X) в q – ичном коде. Место точки (запятой) постоянно для всех чисел и в процессе решения задач не меняется. Знак положительного числа кодируется цифрой 0, знак отрицательного числа – цифрой 1.

Код числа в форме с фиксированной точкой, состоящий из кода знака и q– ичного кода его модуля, называется прямым кодом q – ичного числа. Разряд прямого кода числа, в котором располагается q – ичный код модуля числа, называется знаковым разрядом кода. Разряды прямого кода числа, в которых располагаются q – ичный код модуля числа, называются цифровыми разрядами кода. При записи прямого кода знаковый разряд располагается левее старшего цифрового разряда и обычно отделяется от цифровых разрядов точкой. В общем случае разрядная сетка для размещения чисел в форме с фиксированной точкой выглядит так:

 

Знак числа q n-1   q 1 q 0, q -1 q -2   q -m

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

 

Номера разрядов
Второй байт Первый байт
15 Знак числа                              
                               

Пример 21. Разместитьцелое число Z1 = 28310 .в байтах памяти. Это число положительное, поэтому его знак кодируется как (0). Двоичный код этого числа Z1 = 1000110112 . Тогда это число в памяти ЭВМ будет расположено так:

 

Номера разрядов
Второй байт Первый байт
                               
                               

Пример 22. Разместитьцелое число Z2 = – 2110 . Знак этого числа кодируется как (1), поскольку число отрицательное. Двоичный код этого числа Z2 = 101012 . Тогда это число в памяти ЭВМ будет расположено так:

 

Номера разрядов
Второй байт Первый байт
                               
                               

2.3.1.2. Представление чисел в формате с плавающей точкой. В формате с плавающей точкой числа представляются в виде мантиссы и основания системы в соответствующей степени. Любое число в этом формате можно представить в виде:

, (2.10)

 

где m – мантисса числа; q – основание системы счисления; p – порядок.

Все эти величины – двоичные числа без знака. Для представления чисел в формате с плавающей точкой используются фиксированные форматы разной длины. В разрядной сетке форматов отводятся места для знака мантисс (нулевой разряд). Знака порядка (первый разряд), значение порядка (6 разрядов, со 2-го по 7-й), в остальные записывается мантисса числа. Далее представлена разрядная сетка в формате 4 байта.

 

Разряды (всего 32 разряда: с 0 – го по 31 – й)

Любое число в формате с плавающей точкой можно представить в различной форме записи.

 

Пример 23. Представить десятичное число в формате с плавающей запятой и разместить в байтах памяти

Х = –55,25 = –5525*10 -2 = –0,5525*10 2, здесь мантисса m = –0,5525, а порядок p = 2.

Обычно числа с плавающей точкой записываются в нормализованном виде т. е. в виде: Х = – 0,5525*10 2 . Тогда для числа Х:

· знак мантиссы – отрицательный (–) – кодируется как (1);

· знак порядка – положительный (+) – кодируется как (0);

· мантисса m = 0,552510 = 0,1000112 ;

· порядок p = 210 =102 ;

 

Номера разрядов
                                                           
Зн m Зн p Порядок p Мантисса m
                                          . . .              
                                                                                                       

 

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

· разряды числа в коде жестко связаны с определенной разрядной сеткой;

· для записи кода знака в разрядной сетке отводится постоянно строго определенный разряд.

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

· записать двоичный код целого числа;

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

· в старший разряд (8 – й или 16 – й) записать код знака: 0 – для положительного числа и 1 – для отрицательного числа.

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

2.3.1.3.1.Правила образования обратного и дополнительного двоичных машинных кодов. Рассмотрим правила образования двоичных машинных кодов:

1. Положительное число в прямом, обратном и дополнительном кодах выглядят одинаково.

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

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

4.

Пример 24. Представить двоичное число в обратных кодах.

Х2 = +1101101 2]пр = 0.1101101 2]обр = 0.0010010
Х2 = – 0101101 2]пр = 1.0101101 2]обр = 1.1010010

 

Здесь точкой отделяется знак числа (его код) от двоичного кода самого числа. Для простоты изложения рассматривается восьмиразрядная сетка.

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

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

Х2 = +1101101 2]пр = 0.1101101 2]доп = 0.1101101
Х2 = -1011001 2]пр = 1.1011001 2]доп = 1.0100110

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

· числа хранятся в памяти компьютера в дополнительном коде;

· числа складываются вместе со знаками, при этом формируется знак результата;

· при сложении чисел с разными знаками единица переноса из знакового разряда отбрасывается.

Сложение чисел. При сложении чисел нужно использовать вышеприведённые правила сложения двоичных разрядов (2.9)

 

Пример 26. Сложить два числа 12610 и 26710. Проверить результат сложения, сделав обратное преобразование.

Проверка.

А=0.0000001100010012=1*20+0*21+0*22+1*23+0*24+0*25+0*26+1*

27+1*28+....=39310

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

А – В = А + [– В]обр-доп

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

 

Пример 27. Даны два числа А = 12610 и В = 26710. Найти сумму этих чисел при разных знаках. Результат проверить.

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

Если в знаковом разряде полученного результата стоит 0, то это означает, что получен прямой код результата, и его не нужно дополнительно инвертировать, как в предыдущем случае.

Проверка.

Вычитание чисел, представленных в дополнительном коде. Рассмотрим правила проведения сложения и вычитания чисел, представленных в дополнительных кодах на конкретном примере.

 

Пример 28. Даны два десятичных числа А = 2610 и В = 3410. Найти сумму этих чисел при разных знаках. Результат проверить.

Вначале представим числа в двоичном коде:

А = 26 10 = 11010 2 В = 34 10 = 100010 2

 

В естественной форме в прямом и дополнительном кодах эти числа имеют следующий вид:

При использовании дополнительного кода единица переноса (переполнения) из знакового разряда не принимается во внимание, т.е. отбрасывается.

Проверка.

Проверим правильность полученных результатов. Для этого переведем их в десятичную систему счисления.

А + В = 0.0000000001111002 =

= 0*20+0*21+1*22+1*23+1*24+1*25+0*26+...= 6010

–А – В = 1.0000000001111002 =

= – (0*20+0*21+1*22+1*23+1*24+1*25+0*26+...)= – 6010

А – В = 1.0000000000100002 = – (0*20+0*21+0*22+0*23+1*24+.....) = – 810

– А + В = 0.0000000000100002 = 0*20+0*21+0*22+0*23+1*24+..... = 810

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

 




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


Дата добавления: 2015-04-25; Просмотров: 903; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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