Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемВиктор Сысоев
1 Кодирование чисел в компьютере
2 ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ Так как любое целое число можно представить как вещественное, но с нулевой дробной частью, то можно было бы ограничиться представлением в компьютере вещественных чисел и реализацией арифметических действий над ними. Однако для эффективного использования памяти повышения скорости выполнения вычислений введения операции деления нацело с остатком ( в паскале DIV и MOD) Целые числа представляются специально для них предназначенными способами.
3 Введение специальных способов представления целых чисел оправдано тем, что часто в задачах, решаемых с помощью компьютера, многие действия сводятся к операциям над целыми числами. Например, в задачах экономического характера, где данными служат количества акций, сотрудников, деталей, транспортных средств и т.д. для обозначения даты и времени; для нумерации различных объектов: элементов массивов, записей в базах данных, машинных адресов и т.п.
4 Целые числа в компьютере хранятся в форме с фиксированной запятой (точкой). Способы компьютерного представления целых чисел отличаются: количеством разрядов (8, 16, 32, 64-х разрядные сетки) наличием или отсутствием знакового разряда
5 БЕЗЗНАКОВОЕ ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ Все разряды ячейки отводятся под само число разрядная сетка разряды Пример: = Диапазон представляемых чисел: А min = =0 10 A max = =2 8 -1= Диапазон В паскале – тип BYTE
6 2. 16-разрядная сетка разряды Диапазон представляемых чисел: А min = =0 10 A max = = = Диапазон В паскале – тип WORD разрядная сетка А min =0 A max = = разрядная сетка А min =0 A max = =
7 ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ СО ЗНАКОМ Старший разряд разрядной сетки отводится под знак: 0 – для положительного числа 1 – для отрицательных чисел 1. 8-разрядная сетка разряды Пример: = Знак положительного числа Пример: = Знак отрицательного числа
8 Диапазон представляемых чисел: A max = =2 7 -1= А min = В паскале – тип SHORTINT разрядная сетка A max = = = А min = В паскале – тип INTEGER
9 Машинные коды чисел В компьютере с помощью применения специальных машинных кодов чисел все арифметические операции над числами сводятся к операциям арифметического сложения и сдвигу кодов.
10 Прямой машинный код Представление числа в привычной форме «знак- величина», когда первый бит n-разрядного слова знаковый, а остальные n-1 битов представляют цифровые разряды числа в двоичной системе счисления, называется прямым кодом двоичного числа. Прямой код целого числа полностью совпадает с записью самого числа в разрядной сетке компьютера. Прямой код целого числа полностью совпадает с записью самого числа в разрядной сетке компьютера. Прямой код отрицательного целого числа отличается от прямого кода соответствующего положительного числа содержимым знакового разряда Пример. Прямой код чисел Х= и Y= в восьмиразрядной сетке имеет вид:
11 [X пк ]= [Y пк ]= В системе прямых кодов существует два различных представления ноля: – положительный 0; – отрицательный 0. Оба представления совершенно равноправны. Прямой код используется для хранения положительных и отрицательных чисел в запоминающих устройствах и для представления положительных чисел при выполнении операций в арифметических устройствах.
12 Дополнительныйобратный коды Дополнительный и обратный коды Для упрощения конструкций арифметических устройств вычислительных машин все арифметические операции, как правило, сводятся к сложению (операция вычитания) или к сериям сложений и сдвигов (операции умножения и деления). Замена операции вычитания (алгебраического сложения) на арифметическое сложение в компьютере осуществляется с помощью обратного и дополнительного кодов. Дополнительный код положительного числа Дополнительный код положительного числа совпадает с этим числом.
13 Объяснение сущности специальных кодов … … - + Рассмотрим на примере реверсивного счётчика для 3-х разрядных десятичных чисел: 999+1=1000 -переполнение разрядной сетки! = -по счётчику 999 – код –1! 000 a + (-a) = (-005) = = – дополнительный код числа – 2 = 5 + (-2) = = – 5 = 7 + (-5) = = Если учесть, что единица переполнения теряется,то получаем правильные результаты Для устранения неоднозначности в кольце будем считать половину состояний (0-499) кодами нуля и положительных чисел, а оставщуюся половину ( ) –кодами отрицательных чисел.
14 Дополнительный код для отрицательного числа Дополнительный код для отрицательного числа равен дополнению его величины до числа, возникающего при переполнении разрядной сетки q n, где q – основание системы счисления, n – число разрядов в разрядной сетке. q n - называют константой образования дополнительного кода Операцию С = А – В, где А и В – целые положительные числа в любой системе счисления, можно представить в виде: С = А – В = А + (-В) = А + (-В) + q n – q n = A +(q n - B)- q n А –первое слагаемое дополнительный код q n – В – дополнительный код числа –В (второго слагаемого) q n – константа, ликвидирующая единицу переполнения
15 Пример. А=95 10, В=43 10, n=2. Найти С=А-В. [-B дк ]=100 – 43 = 57 С = 95 + [-B дк ] – 100 = – 100 = 152 – 100 = 52 Единицу в старшем разряде суммы можно просто зачеркивать. Необходимо найти способ получения дополнения произвольного числа Х до q n без использования вычитания: С = А – В = А + (-В) = А + (-В) + q n – q n = A +(q n -1- B)- q n + 1 Выражение q n – 1 – В определяет число В, получаемое заменой каждой цифры числа В на её дополнение до цифры q –1. Так, = = 999. обратным кодом В называется обратным кодом числа В; q n -1 - константой образования обратного кода
16 Из обратного кода легко получить дополнительный код: В + В = q n -1 q n - В = В + 1 Дополнительный код обратного кода Дополнительный код получается путём добавления единицы к младшему разряду обратного кода. Следовательно, дополнения двоичных чисел можно находить, минуя операцию вычитания. В обратном коде, как и в прямом, существует отрицательный и положительный ноль. Только в дополнительном коде ноль имеет единственное представление. Для данной длины разрядной сетки дополнительным кодом представляется на единицу больше отрицательных чисел, чем положительных. Договоримся обозначать прямой, обратный и дополнительный коды числа А через [А пк ], [А ок ], [А дк ].
17 Пример. Найти прямой, обратный и дополнительный коды чисел А = 34 и В = [А пк ]= , [А ок ]= , [А дк ]= [В пк ]= , [В ок ]= , [В дк ]= Алгоритм получения дополнительного кода отрицательного числа. 1.Модуль числа представить прямым кодом в k двоичных разрядах. 2.Значения всех бит инвертировать: все ноли заменить на единицы, а единицы на ноли (таким образом получается k-разрядный обратный код исходного числа); 3.К полученному обратному коду, трактуемому как k- разрядное неотрицательное двоичное число, прибавить единицу.
18 Примеры. 1. Дано отрицательное целое десятичное число M=-20. Представьте число в машинном коде в 16- разрядной сетке в двоичной и 16-ричной системах счисления. М=-20= [Mпк] 2 = [M ок] 2 = [M дк] 2 = [M дк] 16 =FFEC
19 2. Дано целое число в виде 16-ричного двоичного машинного кода. Определите десятичное значение данного числа: K a =FFD4 Первая цифра F, следовательно, число отрицательное и хранится в компьютере в форме дополнительного машинного кода. FFD4 16 = [ дк ] [ ок ] – обратный код числа [K a ] ПК =[ пк ] – прямой двоичный код числа Тогда десятичное число а = = - (32+8+4) = -44 – десятичное число
20 2 способ: через 16-ричную систему счисления K a =FFD4 < 0, следовательно число а хранится в компьютере в дополнительном коде. Перейдем от дополнительного к прямому машинному коду: дополнительный код для отрицательного числа Так как дополнительный код для отрицательного числа равен дополнению его величины до числа, возникающего при переполнении разрядной сетки q n, то [K a ] ПК = FFD4 16 = 002С 16 Тогда десятичное число а = - 2С 16 = - ( ) = = - 44
21 Действия над машинными кодами целых чисел Дано: десятичные числа А= 34 и В = 30 Найти: А+В, А – В, В – А в двоичных машинных кодах в 8 разрядной сетке. [A пк ] = [А ок ] = [А дк ] = [-A пк ] = [-А ок ] = [-А дк ] = [-B пк ] = [-В ок ] = [-В дк ] = [В пк ] = [В ок ] = [В дк ] =
22 [А + В] ДК = = А + В = 64 [А – В] ДК = = А – В = 4 [В – А] ДК = = < 0, следовательно, это дополнительный код, нужно перевести его в прямой: [В – А] ОК = [В – А] ПК = В – А = - 4
23 Действия над машинными кодами чисел с фиксированной точкой ( в 16-ричной системе счисления) Дано: десятичные числа А= 34 и В = 30 Найти: А+В, А – В, В – А в 16-ричных машинных кодах в 16 разрядной сетке. 1) А=34=22 16 В=30=1E 16 [K A ] пк = [K B ] ПК =001E 16 K A + K B = E = A + B = = 64 2) [K -B ] ПК =801E 16 [K -B ] ДК = E 16 = FFE2 16 K A + K B = FFE2 = А - В = = 4
24 Представлениевещественных чиселвкомпьютере Представление вещественных чисел в компьютере Любое число в экспоненциальной (нормальной) форме представляется в виде: A = m A.q p Нормализованная мантисса:
25 В современных компьютерах машинная форма числа хранит не сам порядок, а его смещенное значение – характеристику числа. Это сделано для того, чтобы не хранить знак порядка и, значит, облегчить действия над порядками; увеличить диапазон представляемых чисел … Знак мантиссы характеристикамантисса Нормализованная мантисса всегда имеет целый разряд 0 и, следовательно, этот 0 в памяти компьютера не хранится, а только подразумевается. Это полезное техническое решение позволяет увеличить количество цифр и, следовательно, точность вычислений.
26 Примеры Вещественные числа представить как машинные коды чисел с плавающей точкой в 32-разрядной сетке в 16с/с: а) А=32008,5б) В= ,5 в) С= 15г) D= Найдем нормализованные мантиссы и характеристики этих чисел: а) А=32008,5=7D08,8 16 =0,7D m A =0,7D088p xA =4+40=44 16 = Знак- 0 Характеристика Дробная часть мантиссы Нормализованная мантисса Характеристика K A = = = 43FA > 0
27 б) B= ,5= -7D08,8 16 = - 0,7D m B = -0,7D088p xB =4+40=44 16 = Знак- 1 Характеристика Дробная часть мантиссы Нормализованная мантисса Характеристика K B = = = C3FA < 0
28 в) С= 15 =F,E 16 m c =0,FE 16 p xA =40+1=41 16 Знак- 0 Характеристика Дробная часть мантиссы K C = = =41FE > в) D= - = - 0,9 16 m B =0,9 16 p xB =40+0=40 16 Знак- 1 Характеристика Дробная часть мантиссы K D = = C <
29 Действия над числами, представленными в экспоненциальной форме 1.Числа в экспоненциальной форме хранятся в памяти в прямом коде с нормализованными мантиссами. 2.Сложение кодов производится путём сложения мантисс только при одинаковых порядках (характеристиках) слагаемых. За общий выбирается наибольший порядок. 3.Алгоритмы операции алгебраического сложения после выравнивания характеристик зависят от знаков слагаемых. 4.Результаты в прямом коде нормализуются.
30 Примеры Выполнить операцию сложения машинных кодов чисел A и B с плавающей точкой в 32-хразрядной сетке. В качестве ответа записать код результата (в 2-ой и 16-ой с/с) и соответствующее этому коду десятичное число 1)K A =43.F34000K B = C1.A13000 a)m A =00.F34m B =00.A13 P Ax =43P Bx =41 => P =2 => m B =00.00A13 – ПК _ A13 FF.FF5ED b)m A +m B = 00.F34 FF.FF5ED 100.F29ED > 0 => m A+B = 00.F29ED
31 P A+B = 3A+B = 0.F29ED = F29,ED 16 = /16+13/256 = /256 K A+B = = = 43.F29ED0
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.