Содержание
-
Кодирование чисел
в компьютере
-
ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ
Так как любое целое число можно представить как вещественное, но с нулевой дробной частью, то можно было бы ограничиться представлением в компьютере вещественных чисел и реализацией арифметических действий над ними. Однако для эффективного использования памяти повышения скорости выполнения вычислений введения операции деления нацело с остатком ( в паскале DIV и MOD) Целые числа представляются специально для них предназначенными способами.
-
Введение специальных способов представления целых чисел оправдано тем, что часто в задачах, решаемых с помощью компьютера, многие действия сводятся к операциям над целыми числами. Например, в задачах экономического характера, где данными служат количества акций, сотрудников, деталей, транспортных средств и т.д. для обозначения даты и времени; для нумерации различных объектов: элементов массивов, записей в базах данных, машинных адресов и т.п.
-
Целые числа в компьютере хранятся в формате с фиксированной запятой (точкой). Способы компьютерного представления целых чисел отличаются: количеством разрядов (8, 16, 32, 64-х разрядные сетки) наличием или отсутствием знакового разряда
-
БЕЗЗНАКОВОЕ ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ
Все разряды ячейки отводятся под само число. 1. 8-разрядная сетка - разряды Пример: 5210= 1101002 0 0 0 0 0 1 1 1 Диапазон представляемых чисел: Аmin=000000002=010 Amax=11111111=28-1=25510 Диапазон 0..255 В паскале – тип BYTE
-
2. 16-разрядная сетка -разряды Диапазон представляемых чисел: Аmin=00000000000000002=010 Amax=1111111111111111=216-1=6553510 Диапазон 0..65535 В паскале – тип WORD 3. 32-разрядная сетка Аmin=0 Amax= 232-1=4 294 967 295 4. 64-разрядная сетка Аmin=0 Amax= 264-1=18 446 744 073 709 551 615
-
ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ СО ЗНАКОМ
Старший разряд разрядной сетки отводится под знак: 0 – для положительного числа 1 – для отрицательных чисел 1. 8-разрядная сетка - разряды Пример: 5210=1101002 0 Знак положительного числа Пример: -5210= -1101002 1 Знак отрицательного числа
-
Диапазон представляемых чисел: Amax=1111111=27-1=12710Аmin= - 12810 В паскале – типSHORTINT 2. 16-разрядная сетка 1 Amax= =215-1=3276710 Аmin= - 3276810 В паскале – типINTEGER
-
Машинные коды чисел
В компьютере с помощью применения специальных машинных кодов чисел все арифметические операции над числами сводятся к операциям арифметического сложения и сдвигу кодов.
-
Прямой машинный код
Представление числа в привычной форме «знак-величина», когда первый бит n-разрядного слова знаковый, а остальные n-1 битов представляют цифровые разряды числа в двоичной системе счисления, называется прямым кодом двоичного числа. Прямой код целого числа полностью совпадает с записью самого числа в разрядной сетке компьютера. Прямой код отрицательного целого числа отличается от прямого кода соответствующего положительного числа содержимым знакового разряда Пример. Прямой код чисел Х=110112 и Y=-110112 в восьмиразрядной сетке имеет вид:
-
[Xпк]=00011011 [Yпк]=10011011 В системе прямых кодов существует два различных представления ноля: 00000000 – положительный 0; 10000000 – отрицательный 0. Оба представления совершенно равноправны. Прямой код используется для хранения положительных и отрицательных чисел в запоминающих устройствах и для представления положительных чисел при выполнении операций в арифметических устройствах.
-
Дополнительныйиобратныйкоды
Для упрощения конструкций арифметических устройств вычислительных машин все арифметические операции, как правило, сводятся к сложению (операция вычитания) или к сериям сложений и сдвигов (операции умножения и деления). Замена операции вычитания (алгебраического сложения) на арифметическое сложение в компьютере осуществляется с помощью обратного и дополнительного кодов. Дополнительный код положительного числа совпадает с этим числом.
-
Объяснение сущности специальных кодов
000 999 001 002 499 498 497 500 501 502 998 997 … … - + Рассмотрим на примере реверсивного счётчика для 3-х разрядных десятичных чисел: 999 + 1 = 1 000 -переполнение разрядной сетки! 000 - 1 = -1 -по счётчику 999 – код –1! 000 a + (-a) = 0 005 + (-005) = 000 005 + 995 = 1 000 995 – дополнительный код числа -005 5 – 2 = 5 + (-2) = 5 + 998 = 1 003 7 – 5 = 7 + (-5) = 7 + 995 = 1 002 Если учесть, что единица переполнения теряется,то получаем правильные результаты Для устранения неоднозначности в кольце будем считать половину состояний (0-499) кодами нуля и положительных чисел, а оставщуюся половину (500-999) –кодами отрицательных чисел.
-
Дополнительный код для отрицательного числаравен дополнению его величины до числа, возникающего при переполнении разрядной сетки qn, где q – основание системы счисления, n – число разрядов в разрядной сетке. qn- называют константой образования дополнительного кода Операцию С = А – В, где А и В – целые положительные числа в любой системе счисления, можно представить в виде: С = А – В = А + (-В) = А + (-В) + qn – qn = A +(qn- B)- qn А –первое слагаемое qn– В – дополнительный код числа –В (второго слагаемого) qn– константа,ликвидирующая единицу переполнения
-
Примеры.
1. Даны целые десятичные числа M=-20 и N=20.Представьте числа в машинном коде в 16-разрядной сетке в двоичной и 16-ричной системах счисления. N=20= 1416 =101002 ПКN= ДКN= 00000000000101002=001416 М=-20=-1416 =-101002 ПКМ=10000000000101002=801416 ДКМ= 1000016- ПКМ 16 =1000016 – 001416= FFEC16 ДКМ=FFEC16= 1111 1111 1110 11002 K N =001416 K M =FFEC16
-
2. Дано целое число в виде 16-ричного машинного кода. Определите десятичное значение данного числа: Ka=FFD4 Первая цифра F, следовательно, число отрицательное и хранится в компьютере в форме дополнительного машинного кода. FFD416=ДКa ПКa=1000016 – ДКa 16 = 1000016 – FFD416=002C16 Тогда десятичное число а= - 2C16 = - (32+12) = -44 Таккак дополнительный код для отрицательного числаравен дополнению его величины до числа, возникающего при переполнении разрядной сетки qn, то
-
Действия над машинными кодами чисел с фиксированной точкой ( в 16-ричной системе счисления)
Дано: десятичные числа А= 34 и В = 30 Найти: А+В, А – В, В – А в 16-ричных машинных кодах в 16 разрядной сетке. 1) А=34=2216 В=30=1E16 [KA]пк=002216 [KB]ПК=001E16 KA + KB = 0022 + 001E = 004016 A + B =4.161 + 0.160 = 64 2) [K-B]ПК=801E16 [K-B]ДК=1000016 - 1E16 = FFE216 KA + KB = 0022 + FFE2 = 1 0004 А - В = 4.160 = 4
-
Представлениевещественныхчиселвкомпьютере
Любое число в экспоненциальной (нормальной) форме представляется в виде: A = mA.qp Нормализованная мантисса:
-
В современных компьютерах машинная форма числа хранит не сам порядок, а его смещенное значение – характеристику числа. Это сделано для того, чтобы не хранить знак порядка и, значит, облегчить действия над порядками; увеличить диапазон представляемых чисел. . . . 2 1 0 23 22 31 30 2928 … Знак мантиссы характеристика мантисса Нормализованная мантисса всегда имеет целый разряд 0 и, следовательно, этот 0 в памяти компьютера не хранится, а только подразумевается. Это полезное техническое решение позволяет увеличить количество цифр и, следовательно, точность вычислений.
-
Примеры
Вещественные числа представить как машинные коды чисел с плавающей точкой в 32-разрядной сетке в 16с/с: а) А=32008,5 б) В= - 32008,5 в) С= 15 г) D= - 7 8 9 16 Найдем нормализованные мантиссы и характеристики этих чисел: а) А=32008,5=7D08,816=0,7D088.164 mA=00.7D088pxA=4+40=4416=10001002 Знак - 0 Характеристика - 1000100 Дробная часть мантиссы - 0111 1101 0000 1000 1000 0000 Нормализованная мантисса - 1111 1010 0001 0001 0000 0000 Характеристика - 100 0011 KA= 0.1000011.1111 1010 0001 00010000 00002 = = 43FA110016 > 0
-
б) B= -32008,5= -7D08,816= - 0,7D088.164 mB= -0,7D088 pxB=4+40=4416=10001002 Знак - 1 Характеристика - 1000100 Дробная частьмантиссы - 0111 1101 0000 1000 1000 0000 Нормализованная мантисса - 1111 1010 0001 0001 0000 0000 Характеристика - 100 0011 KB= 1.1000011.1111 1010 0001 0001 0000 00002 = = C3FA110016
-
в) С= 15 =F,E16 mc=0,FE16 pxA=40+1=4116 Знак - 0 Характеристика - 1000001 Дробная часть - 1111 1110 0000 0000 0000 0000 мантиссы KC= 0.1000001.1111 1110 0000 0000 0000 00002 = =41FE000016 > 0 14 16 в) D= - = - 0,916 mB=0,916 pxB=40+0=4016 Знак - 1 Характеристика - 1000000 Дробная часть - 1001 0000 0000 0000 0000 0000 мантиссы KD= 1.1000000.1001 0000 0000 0000 0000 00002 = C090000016
-
Действия над числами, представленными в экспоненциальной форме
Числа в экспоненциальной форме хранятся в памяти в прямом коде с нормализованными мантиссами. Сложение кодов производится путём сложения мантисс только при одинаковых порядках (характеристиках) слагаемых. За общий выбирается наибольший порядок. Алгоритмы операции алгебраического сложения после выравнивания характеристик зависят от знаков слагаемых. Результаты в прямом коде нормализуются.
-
Примеры
Выполнить операцию сложения машинных кодов чисел A и B с плавающей точкой в 32-хразрядной сетке. В качестве ответа записать код результата (в 2-ой и 16-ой с/с) и соответствующее этому коду десятичное число KA =43.F34000 KB = C1.A13000 mA=00.F34 mB=00.A13PAx=43 PBx=41 => P =2 =>mB =00.00A13 – ПК _100.00000 00.00A13 FF.FF5ED mA+mB = 00.F34 FF.FF5ED 100.F29ED > 0 => mA+B = 00.F29ED
-
PA+B = 3 A+B = 0.F29ED.103 = F29,ED16= 15.162+ 2.161+9.160+14/16+13/256 = 3881 237/256 K A+B =0.100 0011.1111 0010 1001 1110 1101 00002= = 43.F29ED0
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.