Реферат: Арифметические основы - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Арифметические основы

Банк рефератов / Математика

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 43 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

АРИФМЕТИЧЕСКИЕ ОСНОВЫ ЦВМ 1.1. Системы счисления В повседневной практике для представления чисел люди пользуются почти исключительно десятичной системой счисления . Лишь в редки х случаях встречаются остатки других систем - римский счет , двенад цатеричная система (часы ), шестидесятеричная (минуты ). Однако система изображения чисел , которая веками складывалась применительно к ручному труду , не позволяет получить наиболее эфф ективные методы выполнения вычислений . По это й причине в вычислительной те хнике пр именяются другие системы счисления и чаще всего - двоичная . Введем несколько определений. Cистема счисления - совокупность символов и правил дл я обозначения чисел . Разделяют системы счисления позиционные и непозиционные . Непозиционная система счис ления задается перечислением изображаемых в ней значений . Позиционная система счислен ия характеризуется основанием и тем , что ч исла , как правило , представляются несколькими разрядами (являются многоразрядными ), а вес люб ого разряда определяется его позици е й в числе. Oснование поз иционной системы счисления определяет количество различных цифр (символов ), допустимое в си стеме счисления . Это же число определяет , во сколько раз вес цифры данного разряда меньше веса цифры соседнего старшего раз ряда. Так , в десят ичной системе счислени я , основание которой равно 10, различают 10 арабски х цифр - 0, 1, 2, ..., 9. Следовательно , при ее использовани и для записи числа , не превышающего девяти , достаточно одной цифры , и такое число записывается как одноразрядное . А в случ а е записи числа , большего девяти , оно представляется как многоразрядное . При этом вес каждого более старшего (расположен ного слева от текущего ) разряда в десять (основание системы счисления ) раз больше текущего. Так , например , число 359 - трехразрядное , и в нем 9 - цифра разряда единиц , 5 - цифра разряда десятков , 3 - цифра разряда сотен (в 10 раз превышает вес разряда десятков ). При э том значение трехразрядного числа 359 получается суммированием трех слагаемых : 3 сотни + 5 десятков + 9 единиц. Общее правил о определения веса ра зряда многоразрядного числа таково : Если пронумеровать разряды целого числа справа налево , начиная от 0 для разряда единиц , то вес любого разряда получается возведением основания системы счи сления в степень , значение которой равно н ом еру разряда . Так , вес самого младшего разряда целых чисел равен 1, поскольку номер разряда рав ен 0, а любое число , в том числе и ч исло 10, возведенное в нулевую степень , дает в результате единицу . Вес следующего слева разряда равен 10 в степени 1, т.е . равен десяти , и т.д. Это же правило справедливо и для записи дробных чисел . При этом разрядам сп рава от разряда единиц , имеющего номер 0, пр исваиваются отрицательные значения : -1, -2, и т.д ., а их веса получаются также при возведении основания 10 в соответ ствующую степень . Так , например , вес третьего разряда в др обной части числа 42,9724 будет равен 10 в степен и (-3), т.е . равен одной тысячной. Указанное правило можно проиллюстрировать следующим образом : Число 7 5 0 6 8 , 2 5 9 Номер разряда 4 3 2 1 0 -1 -2 -3 Вес разряда 10000 1000 100 10 1 0,1 0,01 0,001 Как видно из примера , в позиционной системе счисления достаточно знать значение основания системы с числения , символы , изображающие отдельные цифры , и указанное правило , чтобы представить любо е число. В вычислительной технике широко применяют двоичную , восьмеричную и шестнадцатиричную с истему счисления. Двоичная система счисления имеет основани е 2, и , следовательно , две разных цифры - 0 и 1; восьмеричная - восемь разных цифр - 0, 1, 2, 3, 4, 5, 6, 7, а шестнадцатеричная - шестнадцать цифр - десять арабских цифр от 0 до 9 и еще шесть си мволов - А (цифра , изображающая десять ), D (цифра тринадцать ), В (цифра одиннадцать ), E (цифра четырнадца ть ), С (цифра двенадцать ), F (цифра пятнадцать ). Проще всего сопоставить запись одни х и тех же чисел в этих системах счисления можно с использованием таблицы 1, при веденной на следующей странице. Мы уже говорили о том , что совреме нные цифровые ЭВМ все используют в качест ве основной двоичную систему счисления . К ее достоинствам относится : · простота выполнения арифметических и логических операций , что вле чет за собой простоту устройств , реализующих эти операции ; · возможность использован ия аппарата алгебры логики (булевой алгебры ) для анализа и синтеза опера ционных устройств ЭВМ. К неудобствам двоичной системы счисления относится необходим ость перевода чисел из десятичной в двоич ную и наоборот , а также то , что запись числа в двоичной системе громоздка (требу ет большего числа разрядов , чем привычная для челове ка десятичная ). По этой и ряду других причин , кроме двоичной применяю тся восьмеричная и шестнадцатеричная системы счисления. Таблица 1.1 С и с т е м а с ч и с л е н и я 10 2 8 16 0 0 0 0 1 1 1 1 2 0 1 2 2 3 1 1 3 3 4 1 0 0 4 4 5 1 0 1 5 5 6 1 1 0 6 6 7 1 1 1 7 7 8 1 0 0 0 1 0 8 9 1 0 0 1 1 1 9 10 1 0 1 0 1 2 A 11 1 0 1 1 1 3 B 12 1 1 0 0 1 4 C 13 1 1 0 1 1 5 D 14 1 1 1 0 1 6 E 15 1 1 1 1 1 7 F 16 1 0 0 0 0 2 0 1 0 Совместное использова ние указанных си стем обусловлено двумя причинами : в восьмеричной и шестнадцатиричной систем ах любое число записывается более компактно , нежели двоичное ; простотой преобразования из двоичной в восьмеричную (шестнадцатирич-ную ) систему счисления и наоборот. Приведем правила перевода чисел из дв оичной системы в восьмеричную (шестнадцатиричную ) и наоборот. П 1 .Правило перевода “ 8с /с -> 2c/c” При переводе многоразрядного числа каждую цифру исходного восьмеричн ого числа представить всегда точно тремя двоичными цифр ами , взятыми из приведенной выше таблицы . При этом , если для записи соответствующей восьмеричной цифры в виде двоичной требуется менее трех двоичных цифр , двоичный эквива лент дополняется слева нулями ( незна чащие нули не исказят значения числа ). Так им образом , например , при записи четырехразряд ного восьмеричного числа должно получиться дв енадцатиразрядное двоичное . После окончания таког о преобразования можно отбросить старшие для всего числа незначащие д воичные цифры. Отметим , что три цифры принято называт ь триадой . Поэ тому можно сказать , что при описываемом пе реводе каждая восьмеричная цифра заменяется с оответствующей ей триадой двоичных цифр. Если исходное число дробное , т.е . имеет целую и дробную часть , то в дво ичном числе запятая ставится между триадами , представляющими соответствующие цифры исходного числа. Пример. Преобразуем восьмеричное число 371,62. Для этого запишем для каждой цифры соответствующую триаду : 3 --> 011 7 --> 111 1 --> 001 6 --> 110 2 --> 010 Теперь можно записать число в двоично й форме (для наглядности между триадами по местим пробелы ): 371,62 -> 011 111 001 , 110 010 И , наконец , запишем полученное двоичное число так , как это принято в математике , без незначащих нулей , а т акже отб росив правые нули в дробной части числа : 371,62 -> 11111001,11001 П 2. Правило перевода “ 2с /с -> 8c/c” При переводе многоразрядного двоичного чи сла в восьмеричную форму поступают следующим обра зом : Исходное число разбивают на триады . При этом для целой части числ а разбиение проводят от местонахождения запят ой влево , а для дробной части - от этог о же места вправо . Затем самая левая г руппа при необходимости дополняется незначащими нулями до образ о вания триады , а самая правая группа только в дробной части дополняется нулями справа также до образования полной триады . После этого ка ждая триада заменяется соответствующей восьмерич ной цифрой . Местоположение запятой сохраняется по тем же правилам , что и в правиле П 1. Пример. Представить двоичное число 1101100,01111101 в форме восьмеричного. Разобьем исходное число на группы по три цифры , приняв в качестве точки от счета местоположение запятой (для наглядности между триадами поместим пробелы ): 1 101 100 , 011 111 01 Теперь дополним до трех цифр нулями самую левую группу слева и самую праву ю группу справа : 001 101 100 , 011 111 010 И , наконец , заменим каждую триаду соот ветствующей восьмеричной цифрой : 001 101 100 , 011 111 100 --> 154,372 П 3. Правило перевода “ 16с /с -> 2c/c” При переводе многоразрядного шестнадцатиричн ого числа в двоичную форму каждую цифру исходного числа заменяют группой точно из четырех двоичных цифр (заменяют тетрадой двоичных ци фр ). Местоположение запятой сохраняется по тем же правилам , что и в правиле П 1. В окончательной записи можно отбросить самые левые (незначащие ) нули и самые прав ые нули дробной части. Пример . Преобразовать шестнадцатиричное число “ 6C,7D” в двоичную форму. Для этого запишем для каждой цифры соответствующую тетраду : 6 --> 0110 C --> 1100 7 --> 0111 D --> 1101 Теперь можно записать число в двоично й форме (для наглядности между тетрадами п оместим пробелы ): 6C,7D -> 0110 1100 , 0111 1101 И , наконец , запишем полученное двоичн ое число так , как это принято в матема тике , без незначащих нулей : 6C,7D -> 1101100,01111101 П 4. Правило перевода “ 2с /с -> 16c/c” При переводе многоразрядного двоичного чи сла в ш естнадцатиричную форму поступают следующим образом . Исходное число разбивают на тетрады . При этом для целой части числа разбиение проводят от местонахождения запятой влево , а для дробной части от этого же места вправо . Затем самая ле вая группа при необход и мости допо лняется незначащими нулями до образования тет рады , а самая правая группа только в д робной части дополняется нулями справа также до образования полной тетрады . После этог о каждая тетрада заменяется соответствующей ш естнадцатиричной цифрой . Местоп о ложение запятой сохраняется по тем же правилам , что и в правиле П 1. Пример . Представить двоичное число 1101100,01111101 в форме шест-надцатиричного. Разобьем исходное число на группы по четыре цифры , приняв в качестве точки отсчета местоположение запятой ( для нагля дности между тетрадами поместим пробелы ): 110 1100 , 0111 1101 Теперь дополним до четырех цифр нулям и слева самую левую группу : 0110 1100 , 0111 1101 И , наконец , заменим каждую тетраду соо тветствующей шестнадцатиричной цифрой : 0110 1100 , 01 11 1101 -> 6С ,7D. Шестнадцатеричная и восьмеричная системы счисления используются для более компактной и удобной записи двоичных чисел. Так , известность шестнадцатиричной системе принесло то , что с ее использованием уд обно представлять программы в кодах бо льшинства современных ЭВМ. 1.2. Перевод чисел и з одной системы счисления в другую Поскольку в практической деятельности люд и привыкли оперировать десятичной системой сч исления , а в ЭВМ числа представляю тся в двоичной , необходимо научиться преобразовы вать числа из одной системы счисления в другую . Рассмотренные выше правила перевода из двоичной системы счисления в восьмеричн ую и шестнадцатиричную и наоборот носят ч астный характер и не могут быть распрост р анены на другие системы . Здесь же мы рассмотрим общие правила перевода , справедливые для любой пары систем счислен ия , хотя и более громоздкие и трудоемкие по сравнению с рассмотренными выше. Правила перевода целых и дробных чисе л не совпадают , поэтому прив едем три правила перевода чисел из системы счисле ния с основанием R в систему счисления с основанием Q. Правило 1. Перевод целых чисел Для перевода целого числа N, представлен ного в системе счисления (с /с ) с основанием R, в с /с с основанием Q необходимо данное число делить на основание Q по правилам с /с с основанием R до получения целого остатка , меньшего Q. Полученное частное снова необходимо делить на основание Q до получения нового целого остатка , мен ьшего Q, и т.д ., до тех пор , пока последне е частное будет меньше Q. Число N в с /с с основанием Q представится в виде не уп орядоченной последовательности остатков деления в порядке , обратном их получению (иными сл овами , старшую цифру числа N да е т последнее частное ). Пример . Преобразовать десятичное число 67 в двоичную форму. Основание исходной системы счисления R=107. Ос нование новой системы счисления Q=2. Согласно приведенному правилу надо исходн ое число 67 делить на основание новой системы (на 2) по правилам десятичной системы счисления (исходная с /с ). Поскольку процесс деления на 2 очень п рост , воспользуемся следующим приемом : в левом столбце будем писать текущие частные , а в правом - текущие остатки от их делен ия на 2 (это может бы ть либо 0, либо 1): 67 1 При делении 67 на 2 получается частное 33 и остаток 1; 33 1 при делении 33 - частное 16 и остаток 1 и т.д. 16 0 8 0 4 0 2 0 1 1 <- Старшая цифра числа. 0 Теперь можно записать число 67 в новой системе счисления . Оно равно 1000011. Правило 2. Перевод правильной дро би Перевод правильной дроби , представленной в с /с с основанием R, в с /с с ос нованием Q заключается в последовательном умножени и этой дроби на основание Q по правил ам системы счисления с основанием R, причем перемножают только дробные части . Дробь N в с /с с основанием Q представляется в ви де упорядоченной последовательности целых частей произведений в порядке их получения . (Ины ми словами , ста р ший разряд являетс я первой цифрой произведения ). Количество посл едовательных произведений определяет количество цифр в полученном числе . Для многих чисел указанный процесс ум ножения потенциально никогда не кончается . По этому он продолжается до тех пор , п ока не будет получено необходимое чис ло цифр дробной части . При переводе числа с целью представления ее в “машинной” форме можно точно указать требуемое количе ство цифр . (Это будет рассматриваться позже , в разделе 1.5). Пример . Перевести в двоичную систему счисления десятичную дробь 0,7243. Основание исходной системы счисления R=10. Ос нование новой системы счисления Q=2. Согласно приведенного правила исходное чи сло 0,7243 надо умножать на основание новой си стемы (на 2) по правилам десятичной системы счис ления (исходная с /с ). Выполним сери ю умножений до получения , например , шести цифр в двоичном числе : Искомые цифры дроби : 0,7243 * 2 = 1 ,4486 1 -> с таршая цифра 0,4486 * 2 = 0 ,8972 0 0,8942 * 2 = 1 ,7944 1 0,7944 * 2 = 1 ,5888 1 0,5888 * 2 = 1 ,1776 1 0,1776 * 2 = 0 ,3552 0 0,3552 * 2 = 0 ,7104 0 Искомое представление число 0,7243 в двоичн ой системе счисления -> 0,101110. Обратите внимание , что для получения шести цифр дроби выполнено семь умножений Это связано с необходимостью выполнить округление , чтобы представить д робь заданной длины более точно. Из последнего примера , конечная дробь в одной системе счисления может стать бес конечной в другой . Это утверждение справедлив о для всех случаев , когда одна система счисления не может быть получена возведен ием в целую степень основания другой. Примеры. Десятичная дробь 0,2 представляется бесконечной дробью 0,33333... в шестнадцат иричной системе счисления (основания с /с 10 и 16). Шестнадцатеричная дробь 0,В 1 представляется конечной дробь ю 0,10110001 в дво ично й системе счисления (основания с /с 16 и 2). Правило 3. Перевод неправильной д роби Перевод неправильной дроби из одной с истемы счисления в другую осуществляется отде льно для целой и дробной части по пра в илам , изложенным выше . 1.3. Двоичные коды д ля десятичных цифр В ряде случаев в вычислительной техни ке применяется не только двоичная , но и десятичная система счисления . Однако и в этом случае для предс тавления десятичн ых цифр используется оборудование , разработанное для представления двоичных цифр . В этом случае говорят о двоично-десятичных кодах десятичных цифр. Согласно формулы Хартли для представления 10 различных цифр требуется четыре бита ин формаци и : 3 бита < I = log(10) < 4 бита. Таким образом , при необходимости представ ить десять разных десятичных цифр комбинациям и двоичных цифр , каждую из них можно п редставить минимум тетрадой двоичных чисел . Б ольшинство кодов десятичных цифр использует т етрад ы , хотя есть и коды , в которых для кодирования используется большее число битов. Наиболее распространены двоично-десятичные ко ды , в которых для представления десятичных цифр используются позиционные методы кодирован ия . Так , если рассматривать четыре двоичн ых разряда тетрады как четырехразрядное двоичное число , то веса ее отдельных разрядов слева направо будут равны соответств енно 8, 4, 2 и 1. Поэтому первый двоично-десятичный код , кот орый мы рассмотрим , обозначается как код “ 8421” . Его можно назвать кодом с ес тественными весами. В этом коде каждая десятичная цифра представляется ее двоичным эквивалентом : цифра 0 как 0000, цифра 1 как 0001, цифра 2 как 0010, цифра 5 как 0101, цифра 8 как 1000, цифра 9 как 1001. В то же время , имея четыре дв оичных цифры , можно представить не 10, а 16 различных комбинаций . Таким образом , при использовании кода “ 8421” шесть комбинаций : 1010, 1011, ..., 1111 останутся неиспользованными , т.е . не будут изображать ни одной из десятичных цифр . Эти комбинации счита ю тся запрещенным и. а ) Коды с избытком Кроме рассмотренной системы кодирования д остаточно широко используются также так назыв аемые коды с избытком . Рассмотрим группу к одов “ 8421” с избытком”. Код “ 8421” с избытком W” строится по следующим правилам : При ко дировании десятичной цифры , к ней вначале прибавляют W, и затем получен ное число представляют как двоичное в код е “ 8421”. Значение W может быть равным 1, 2, 3, 4, 5 или 6. П ри любом значении избытка W шесть из шестн адцати комбинаций останутся неиспользова нным и . Только для разных избытков эти значения будут разными. Пример . Рассмотрим код “ 8421” с избы тком 3”. а )Представим цифру 8 в данном коде. Вначале увеличим 8 на 3. Получится 11. Затем запишем 11 в коде “ 8421” . Получи тся 1011. Число 1011 и есть представ ление цифры 8 в данном коде. б )Восстановим цифру , которая изображается комбинацией 0101. Вначале представим десятичное число , расс матривая комбинацию 0101, как его изображение в коде “ 8421” . Получится число 5. Затем вычтем из него (из 5) избыток 3. Получит ся 2. Это и есть искомый ответ : Комбинация 0101 изображает десятичную цифру 2 в коде “ 8421” с избытком 3”. в )Восстановим цифру , которая изображается комбинацией 1110. Восстановим десятичное число . Получится 14. Вычтем из него избыток 3. Получится 11. Поско льку 11 не является десятичной цифрой (это двухразрядное десятичное число ), делаем вывод , что комбинация 1110 не изображает никакой десятичной цифры и является запр ещенной. б ) Код “ 2421” Кроме кодов с естественными весами разрядов применяются и другие . Од ним из широко известных кодов являетс я позиционный код , построенный с использовани ем тетрады двоичных цифр , веса которых сле ва направо равны соответственно : 2, 4, 2 и 1. Представим коды цифр в таблице : Цифра Код “ 2421” Цифра Код “ 2421” 0 0000 5 0101 ил и 1011 1 0001 6 0110 или 1100 2 0010 или 1000 7 0111 или 1101 3 0011 или 1001 8 1110 4 0100 или 1010 9 1111 Как видно из таблицы , ряд десятичных цифр могут быть представлены двумя не совпадающ ими двоичными комбинациями. Например , комбинации 0100 и 0010 изо бражают цифру 2, комбинации 1010 и 0100 изображают циф ру 4 и т.д . Отличительной особенностью данного кода является то , что в нем нет н еиспользованных (запрещенных ) комбинаций. в ) Код “ 2 из 5” Данный код принадлежит к н епозиционным кодам . Ка к и все непозици онные коды он определяется табличным способом . Его название отражает принцип построения кода : любая десятичная цифра представляется комбинацией из 5 двоичных цифр , в которой точно две цифры 1 и , следовательно , три ц ифры 0. Представим таблиц у одного из возм ожных вариантов для данного кода : Цифра Код Цифра Код 0 11000 5 01010 1 00011 6 01100 2 00101 7 10001 3 00110 8 10010 4 01001 9 10100 Все остальные возможные комбинации , в которых число единиц не равно двум , являют ся запрещенными. Т акже как и все коды на о снове тетрады “ 8421” , последний код принадле жит к группе кодов , обладающих так называе мыми диагностическими возможностями : Если известн о , что некоторая комбинация должна изображать десятичную цифру , но попадает в область запрещенны х , значит произошло искаж ение информации . Это свойство кодов активно используется в аппаратуре ЭВМ. Для закрепления материала по переводу чисел из одной системы счисления в дру гую выполним несколько примеров. Пример 1. Представить десятичное число 581 в дво ичной , восьмеричной и шестнадцатиричной системах счисления. Задачу можно решить с минимальными за тратами усилий , выполнив , например , перевод в двоичную с /с по общему правилу (т . е . делением на основание 2 по правилам десят ичной системы счисления ), а затем из двоичной в восьми - и шестнадцатиричную систем ы счисления , используя упрощенные правила (код ированием соответственно тетрад и триад ). Пример 2. Представить десятичное число 993,761 в двоичной и шестнадцатиричной системах счисле ния. Задачу можно решить та ким же образом , как и предыдущую. Пример 3. Представить шестнадцатиричное число 8363 в десятичной системе счисления. Воспользуемся общим правилом . Для этого надо исходное число делить на 10 по прави лам шестнадцатиричной системы счисления. Что же это за пр авила ? Это такие же правила сложения , вычитания , умножения и деления , чт о и в десятичной с /с , но над числа ми в позиционной шестнадцатиричной с /с . Искомое число в десятичной системе ра вно 33635. Примечание . В круглых скобках записаны десятичные эквиваленты соответствующих шестн адцатиричных чисел . При этом в каждой паре чисел , расположенных друг под другом , пер вое число - частичное делимое , а второе - про изведение делителя на частичное частное . Так запись (131) - эквивалент шестнадцатиричного делимого 83, а (130) - результат умножения делителя А (=10) на D (13). 1.4. Арифметика цифровых вычислитель ных машин Как уже говорилось выше , практически в се современные цифровые ЭВМ в качестве ос новной используют двои чную систему счисле ния . А все арифметические операции над дво ичными числами можно свести к двум элемен тарным - сложению и сдвигу двоичных кодов , изображающих числа . Это позволит технически р еализовать четыре действия арифметики в одном устройстве , называе м ом арифметико-лог ическом (АЛУ ), используя одни и те же э лектрические схемы. 1.4.1. Представление чисел со зна ками При выполнении арифметических операций в ЭВМ применяют прямой , обратный и дополнит ельный коды. Как уже говорилось выше , кодом называю т такую запись числа , которая отличается о т естественной и общепринятой . Так вот , в математике естественной формой записи числа является запись , при которой непосредственно перед старшей значащей цифрой числа пом ещается знак плюс (+) или минус (-), а д лина записи определяется величиной числа (ина че , количество символов , использованных для за писи разных чисел , как правило , не совпада ет ). В ЭВМ это не так . Одной из важн ейших характеристик любой ЭВМ является длина сло в а в ней . Длина слова определяется количеством двоичных разрядов слова . Поэтому в ЭВМ , вне зависимости от величины числа , его код все гда имеет фиксированное количество двоичных ц ифр. Кроме этого , в двоичном алф авите нет никаких символов , кроме цифр 0 и 1, и необходимы новые правила для ука зания знака числа . Суть этих правил сводит ся к тому , что знак плю с изображается цифрой 0, знак минус - цифрой 1, а цифра , изображающая знак всегда записывает ся самой первой в записи числа. Обратите внимание , что код числа всегда содержит изображение его знака , в отли чие от математической записи , которая позволя ет опускать знак плюс при изображении пол ожительного числа. Так , код 011101, согласно этим правилам , изо бражает положительное (самая левая цифра - 0) дво ичное число 1 1101. Для того , чтобы более просто , и , сл едовательно , более экономично реализовать устройс тво АЛУ применяют несколько разных кодов чисел . Это связано с тем , что разные оп ерации в ЭВМ более просто реализуются в разных кодах. При выполнении арифметических оп ераци й в ЭВМ применяют прямой , обратный и дополнительный коды чисел. Прямой код двоичного числа - это само двоичное число , в котором все цифры , изображающие его знач ение , записываются как в математической запис и , а знак числа записывается двоичной цифр ой . При этом никакого символа , отделяющего эту цифру от старшей цифры , используемой при изображении его величины , не допускаетс я . В таких случаях говорят о том , что назначение цифры в коде определяется его позицией. Примеры. Изображаемое число Код +1101 ( +13) 0000 1101 ( В примерах коды ) +1011101 (+93) 0101 1101 ( изображаются ) 1101 (-13) 1000 1101 ( восемью цифрами ) Итак , прямой код почти не отличается от принятого в математике : для выявления абсолютной величины (модуля ) числа , надо о тбросит ь цифру , обозначающую его знак. Однако применительно к операциям сложения и вычитания такой код неудобен : правила счета для положительных и отрицательных чисел различаются . Чтобы прояснить это обстоя тельство , представим что длина кода (слова ) равна 5 двоич ным разрядам и запишем не сколько чисел в нем : Число -2 -1 0 +1 +2 Код 10010 10001 00000 00001 00010 Как видно из примера , при использовани и прямого кода при переходе значения числ о через ноль , происходит скачкообразное измен ение кода ! Поэт ому построени е устройства , в котором д олжны выполняться такие действия арифметики , как сложение чисел с разными знаками и вычитание , становится сложной задачей. Прямой код используется при хранении чисел в памяти ЭВМ , а также при выполн ении операций умножения и деления. Чтобы построить более простые схемы А ЛУ предложены и активно применяются обратный и дополнительный коды. Обратный код положительного числа совпадает с прямым , а при записи отрицательного числа все его цифры , кроме цифры , изображающей знак чис ла , заменяют ся на противоположные ( 0 заменя ется на 1, а 1 - на 0). Примеры записи. Изображаемое число Код +1101 (+13) 0000 1101 ( В примерах коды ) +1011101 (+93) 0101 1101 ( изображаются ) 1101 (-13) 1111 0010 ( восемью цифрами ) Сопоставление этой зап иси с прямы м кодом показывает , что непосредственно восст ановить абсолютную величину (модуль ) отрицательног о числа непросто . Однако , в этом коде к ак к положительным , так и к отрицательным числам можно применять одни и те же правила , а операцию А-В можно за м енить операцией сложения чисел А и “минус В”. Посмотрим , как представляется последовательны е числа при переходе через ноль : Число -2 -1 0 +1 +2 Код 11101 11110 00000 00001 00010 Из примера в идно , что переход через ноль также не выглядит естественным . Отм еченная особенность влечет за собой и следующее - в обратн ом коде ноль изображают две различающиеся комбинации : 00000 (+0) и 11111 (-0), что усложняет аппаратную реализацию операций. Для восстановления прямого кода отрицательного числа из обратного кода на до все цифры , кроме цифры , изображающе й знак числа , заменить на противоположные. Дополнительный код положительного числа совпадает с прямым , а код отрицательного числа образуется как результат увеличения на 1 его обратно го кода. Иными словами , процесс по строения дополнительного кода отрицательного числа можно разбить на два этапа - построить обратный код , а затем из него построить дополн ительный. Проиллюстрируем это на примере. Число -> - 101101 Прямой код -> 1101101 Обратный код -> 1010010 +1 Дополнительный -> 1010011 Примеры записи. Изображаемое число Код +1101 (+13) 0000 1101 ( В примерах коды ) +1011101 (+93) 0101 1101 ( изображаются ) 1101 (-13) 1111 0011 ( восемью цифрами ) В дополнительном коде , в отличие от обратного , но ль изображается только одн ой комбинацией , и кроме этого , достаточно естественно получается переход через ноль , ес ли иметь в виду , что любое число , больш ее другого на 1, получается при прибавлении к этому другому 1 по правилам сложения . П рименительно к доп о лнительному коду это именно так , если принять к сведен ию , что разрядность слова фиксирована , и е диница переноса из старшего разряда теряется , поскольку ее некуда записать : 2 -> 11101 + 1 = 11110 1 -> 11110 + 1 = 11111 0 -> 11111 + 1 = (1)00000 (п еренос отбрасывается ) +1 -> 00000 + 1 = 00001 +2 -> 00001 + 1 = 00010 Для восстановления прямого кода числа из дополнительного нужно полностью повторить (и именно в том же порядке !) действия , которые использовались при переводе из пря мого в дополнитель ный код : сначала все цифры , кроме цифры , изображающей знак , зам енить на противоположные , а затем прибавить 1. Основным достоинством дополнительного кода является то , что в нем единообразно реа лизуются операции сложения чисел разных знако в (алгебраическое с ложение ), а операцию вычитания можно свести к операции сложения заменой знака вычитаемого на обратный . Вс помнив , что в памяти ЭВМ числа хранятся в прямом коде , станет ясно , что замена знака вычитаемого может быть выполнена чре звычайно просто (заменой знак а числа в прямом коде на обратный ). Именно по указанной причине дополнительный код применя ется чаще обратного. 1.4.2. Сложение и вычитание чисел Сложение и вычитание чисел в обратном и дополнительном код ах выполняется с использованием обычного правила арифметического сложения многоразрядных чисел . Общей для этих кодов особенностью (и очень удобной о собенностью ) является лишь то , что при пор азрядном сложении чисел разряды , изображающие знаки чисел рассмат р иваются как р авноправные разряды двоичного числа , которые складываются друг с другом и с единицей переноса из предыдущего разряда числа по обычным правилам арифметики . Различия же об ратного и дополнительного кодов связаны с тем , что делается с единицей пе р еноса из старшего разряда (изображающего , как неоднократно говорилось , знак числа ). При сложении чисел в дополнительном к оде единица переноса из старшего разряда игнорируется (теряется ), а в обратном коде эту единицу надо прибавить к младшему раз ряду резул ьтата. Пример 1. Сложить числа +12 и -5. а ) В обратном коде Десятичная форма -> +12 -5 Двоичная форма -> +1100 -101 Прямой код -> 00001100 10000101 Обратный код -> 00001100 11111010 Выполним сложение в столбик : 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 =============== (1) 0 0 0 0 0 1 1 0 + 1 (Добавление 1 переноса ) ============== 0 0 0 0 0 1 1 1 Итак , результат в обратном коде = 00000111. Поскольку знаковый разряд равен 0, результа т положительный , и , следовательно , запись кода числа совпадает с за писью прямого кода . Теперь можно восстановить алгебраическую запись результата . Он равен +111 (незначащие нули отброшены ), или в десятичной форме +7. Проверка (+12-5=+7) показывает , что результат верн ый. а ) В дополнительном коде Десятичная форма -> +12 -5 Двоичная форма -> +1100 -101 Прямой код -> 00001100 10000101 Обратный код -> 00001100 11111010 +1 Дополнительный код -> 00001100 11111011 Выполним сложение в столбик : 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 ============ (1) 0 0 0 0 0 1 1 1 (Перенос игнорируется ) Итак , результат в дополнительном коде = 00000111. Поскольку знаковый разряд равен 0, результа т положительный , и , следовательно , запись кода числа совпадает с записью прямого кода . Теперь можно восстановить алгебраическую запис ь ре зультата . Он равен +111 (незначащие ну ли отброшены ), или в десятичной форме +7. Проверка (+12-5=+7) показывает , что результат верн ый. Умножение и деление двоичных чисел пр оизводится в ЭВМ в прямом коде , а знак и их используются лишь для определения зн ака р езультата . Также как и в мате матике , умножение сводится к операциям сложен ия и сдвига . Деление выполняется за счет комбинирования сдвигов , вычитаний (в этот момент могут использоваться обратный или доп олнительный коды ) и сложений. 1.5. Кодирование чисел в ЭВМ В ЭВМ применяется чаще всего одна из двух форм представления чисел : с фиксированной запятой ; с плавающей запятой. Числа представляются в машинном слове , имеющем для конкретной ЭВМ всегда фиксиров анно е число разрядов (битов ). Это число является одной из важнейших характеристик любой ЭВМ и называется разрядностью машины . Разные разряды слова при кодировании ком анд и данных имеют несовпадающие функциональн ые назначения . При рассмотрении их функций испол ь зуют также термин “разрядная сетка машины”. 1.5.1. Числа с фиксированной запя той В числах с фиксированной запятой поло жение запятой в разрядной сетке машины за ранее обусловлено для всех чисел раз и навсе гда . Поэтому в коде числа запя тая никак не обозначается . В большинстве м ашин место запятой подразумевается после посл едней цифры (справа от нее ). А такие чи сла - целые . При необходимости представлять дро бные числа с использованием формы с фикси рованной за п ятой программист должен алгоритмическими средствами обеспечить использо вание множителя , выполняющего функцию масштабиров ания (масштабного множителя ). Определим диапазон представимых чисел. Вначале рассмотрим пример , в котором п оложим , что мы имеем дело с д есятичной (а н е двоичной ) системой счисления , и что для записи абсолютной величины числа (без уче та его знака ) в нашем распоряжении имеется шесть разрядов. Тогда максимальное (по абсолютной величин е ) целое будет равно 999999 или иначе 10**6-1. А п оскольку в разрядной сетке машины для записи знака числа всегда предусматривается один разряд , то для нашего случая диапа зон представимых чисел составит все целые числа , начиная от -999999 до +999999, а количество различных целых - 2*10**6-1. В двоичных ЭВМ их разр ядность определяется числом разрядов в слове . Так , если разрядность некоторой ЭВМ равна 16, то один разряд отводится для кодирования знак а числа , а остальные 15 - для записи его в еличины . При этом максимальное по модулю ц елое значение в машинном слове буд е т равно 2**15-1, что составит 32767. (Посмотрите д иапазон целых ( integer ) чисел в языке программирования Паскаль для ПЭВМ типа IMB PC). В общем случае , если разрядность машин ы составляет N битов . Тогда максимальное по абсолютной величине целое число , котор о е можно в ней записать , будет равно 2**(N-1)-1. Особенности арифметических операций над числами Поскольку (если положение запятой фиксиро вано после последней цифры числа ) числа с фиксированной запятой - целые , они пре дставляются в машине точно . А потому опера ции сложения , вычитания и умножения корректны всегда : как операнды , так и результат - целые числа. Единственной особенностью , о которой необ ходимо упомянуть , является ситуация , которая н осит название “переполнение разрядной сетки ” (FixedOverflow - переполнение с фиксированной запятой ) и которая возникает , когда результат умножения превышает максимально возможное для данной разрядности значение . Эта ситуация считается в ЭВМ исключительной . При ее возн и кновении записать получившееся значение невозможно . В этом случае устанавливается в “ 1” специальный флаг переполнения , старший бит результата (бит переноса из старшего разряда слова ) теряется , а в качестве результата выдается искаженное число . Описываемая ситуация не считается критической , и после окончания данной операции вычислен ия продолжаются . Таким образом , программист са м должен позаботиться о корректной реакции на возникновение переполнения , используя для обнаружения указанной ситуации содержимое фл а га переполнения. Иначе обстоит дело с операцией делени я . При делении целого числа на другое целое результат совсем не обязательно должен быть целым . А поскольку и результат д олжен быть представлен целым числом , возникае т коллизия , которую проиллюстрируем п риме ром : 5 / 2 = 2 5 / 3 = 1 5 / 4 = 1 5 / 5 = 1 5 / 6 = 0 И в отличие от умножения , с позици й ЭВМ никаких ошибок при этом нет , и никакие флаги не устанавливаются , а указанн ые особенности деления целых должны учитывать ся программистом самост оятельно . В ряде языков программирования эти особенности отража ются набором допустимых арифметических операций . Так , например , в языке Паскаль для це лых (integer) определены две операции : div - целоч исленное деление , при котором в качестве р езультата пред ставляется целая часть част ного, mod - остат ок от деления целых (деление по модулю ), при котором в качестве результата представ ляется целый остаток от деления , по абсолю тной величине меньший делителя. Примеры : 5 div 3 = 1 5 mod 3 = 2 1.5.2. Числа с плавающей запятой В форме с плавающей запятой число представляется двумя компонентами : мантиссой и порядком . Мантисса используется для записи цифр числа , а порядок - для указания поло жения запятой. Разр ядная сетка машины в этом случае делится на несколько частей : один разряд - для кодирования знака числа (это всегда самый старший , левый , разряд слова ); M разрядов - для записи мантиссы ; Р разрядов - для записи порядка (с учетом его знака ). Местоположение запятой при этом тож е строго фиксируется : считается , что мантисса всегда представляется как число , меньшее единицы , но такое , в котором первая цифра после запятой для всех абсолютно чисел отлична от нуля (единственное исключение со ставляет число 0). Такая форма представл ения мантиссы называется нормализованной . Иначе говорят , что мантисса нормализована (приведена к виду : 1 < M <= 0,1). Ну , а если известно , что мантисса и меет вид “0,цццц..” , то ее код в машинном слове может не содержать символов “0,” , а мест оположение запятой предполагается перед старшей значащей цифрой мантиссы. Порядок Р всегда представляется целым числом со знаком + или -. А для кодировани я абсолютной величины порядка остается (Р -1) цифр. Теперь можно рассмотреть диапазон предста вимых чисе л. Вначале рассмотрим пример применительно к двоичной системе счисления. Пусть m - количество разрядов мантиссы, р - коли чество разрядов порядка , включая знаковый. Тогда максимальное по абсолютной величине число будет равно 0, 1111..1 * 2**(+ 111..1 ) = (1-2**(- м ))*2**(2**( р -1)-1), m цифр ( p -1) цифр или приблизительно 2**(2**( р -1)-1), а минимальное по абсолютной величине число 0, 1000..0 * 2**(- 111..1 ) = 2**(-2**( р -1)). m цифр ( p -1) цифр Итак , число в форме с плавающей за пятой представляется последоват ельностью бит ов без каких либо явно указанных разделит елей , но функционально разбитой на три гру ппы (знак числа , мантисса числа , порядок чи сла ) или (знак числа , порядок числа , мантисс а числа ) . Рассмотренная форма кодирования числа при водит к следующим по следствиям : Диапазон чисел , представимых в форме с плавающей запятой , определяется главным обра зом разрядностью порядка (Р ). Разрядность мантиссы (М ) определяет точное количество значащих цифр в изображении ч исла. Следовательно , большинство чисел в форме с плавающей запятой представляется при ближенно и причиной этого является ограниченн ое число разрядов мантиссы . Величина же аб солютной погрешности при приближенном представле нии числа зависит как от абсолютной велич ины числа , так и от разрядности мантиссы и порядка. Рассмотрим примеры . При этом для прост оты положим , что числа представляются в де сятичной системе счисления , количество цифр м антиссы равно 4, количество цифр порядка - 2, знак порядка записывается как в математике , а знак числа мы не изображаем , п ола гая все числа положительными. Пример 1. Пусть имеется число 12,42=0,1242*10**(+2). В заданном формате оно представляется цепочкой символов 1 2 4 2 + 0 2 При этом цепочка “ 1 2 4 2” представляет мантиссу , т. е . в математическом смысле число 0,1242 , а ц епочка “ + 0 2” - порядок - целое положительное число 2. Тогда ближайшее большее этого число м ожет быть задано цепочкой 1 2 4 3 + 0 2 и оно равно 0,1243*10**(+2)= 12,43. Таким образом , ближайшие числа на числ овой оси , которые различимы при кодировании их в форме с плавающей запятой дл я данного примера различаются на 0,01 (абсолютная погрешность представления всех чисел между 12,42 и 12,43 имеет верхнюю оценку 0,01). Пример 2. Пусть имеется число 0,001242=0,1242*10**(-2). В заданном формате оно представл я ется цепочкой символов 1 2 4 2 - 0 2 , а ближайшее большее этого число предс тавляется цепочкой 1 2 4 3 - 0 2 и равно 0,1243*10**(-2)= 0,001243. Таким образом , абсолютная погрешность пре дставления всех чисел между 0,001242 и 0,001243 имеет верхнюю оце нку 0,000001. Пример 3. Пусть имеется число 0,1242*10**(+12). В естественной форме записи это число 124 200 000 000, а в заданном формате оно представляе тся цепочкой символов 1 2 4 2 + 1 2 , а ближайшее большее этого число предс тавляется цепочкой 1 2 4 3 + 1 2 и равно 0,1243*10**(+12)= 124 300 000 000. Таким образом , абсолютная погрешность пре дставления всех чисел между 124 200 000 000 и 124 300 000 000 имеет верхнюю оценку 100 000 000 = 10**8. Обратите внимание , что в последнем при мере невозможно записать ни одного числ а в интервале размером 10**8. Важный вывод , который следует из анали за формы кодирования чисел с плавающей за пятой и иллюстрируется в рассмотренных пример ах : числа в форме с плавающей запятой , несмотря на то что , эта форма предложена для представления в ЭВМ непрерывных величин , представляются дискретным множеством н а числовой оси и располагаются на ней неравномерно. область 1: Х <- МаксВещ - ни одного значен ия из области нельзя представить в машинн ом слове ( МаксВещ - максимальное по абс олютной величин е число , которое можно закодировать ); область 2: - МаксВ ещ <=X<= -МинВещ - в данном интервале может бы ть представлено столько различных чисел , скол ько их можно записать по заданной разрядн ости мантиссы и порядка ; область 3: -МинВещ =X>= +МаксВещ - в данном интервале может быть пред ставлено столько различны х чисел , сколько их можно записать по заданной разрядност и мантиссы и порядка ; область 6: X> +МаксВещ - ни одного зна чения из области нельзя представить в маш инном слове (МаксВещ - максимальное по абсолютн ой величине число , которое можно закодировать ). Особ ое место занимает величина 0 . Она также кодируе тся в форме с плавающей запятой , причем как ее порядок , так и мантисса (!) полагаю тся равными нулю. Особенности арифметических операций над числами При выпо лнении арифметических операци й все четыре действия арифметики корректны . Следует однако иметь в виду , что дискре тный характер представления чисел в форме с плавающей запятой и разбиение числовой оси на области , в ряде из которых н евозможно представить ни о дного чис ла , приводит : Во-первых , к тому , что при выполнении арифметической операции теоретически возможно формирование результата , который попадает в о бласти 2 или 5, но который нельзя закодировать в форме с плавающей запятой точно . В этом случае , результ ат заменяется ближа йшим из множества допустимых значений с у четом правила округления (ошибка метода предс тавления чисел , вызванная ограниченной разрядност ью мантиссы ). Во-вторых , к тому , что при выполнении арифметической операции теоретически возможно форм ирование результата , который попадает в область 1 или в область 6. Этот случай является критическим , поскольку результат предста вить нельзя принципиально . Рассматриваемая ситуац ия называется “Переполнение с плавающей запят ой” (Overflow), а при ее возникно в ении происходит аппаратное прерывание работы ЭВМ и выполнение программы аварийно прекращается . Причиной этого является ограниченная разряднос ть порядка. В-третьих , к тому , что при выполнении арифметической операции теоретически возможно формирование резуль тата , который попадает в область 3 или в область 4. Рассматриваемая ситуация называется “Потеря значимости” , а пр и ее возникновении результат заменяется ближа йшим допустимым , как правило нулем . Выполнение программы после этого продолжается . В нек оторых ЭВ М при этой ситуации вы рабатывается предупредительное (информационное ) сообще ние . Причиной этой ситуации также является ограниченная разрядность порядка. В заключении отметим , что при выполнен ии арифметических операций мантиссы чисел и их порядки обрабатываю тся по разным алгоритмам . При этом в операциях сложения и вычитания чисел порядки выравниваются за счет сдвига мантиссы меньшего операнда на число разрядов , равное разнице порядков операндов , а в операциях умножения и деления порядки чисел соответственно с кладывают или вычитают . Поскольку , как мы уже видели раньше , вычитание алгебраически х чисел (т.е . с учетом их знаков ) в прямом коде реализовать не просто , а поряд ки представляются как числа целые со знак ом в прямом коде , в ряде ЭВМ при п редставлении числа с плавающей запято й порядок числа заменяется его характеристико й. При этом характеристик а числа рассматривается только как положитель ное число , а следовательно , в нем не на до и кодировать знак . Признаком же того , какой знак имеет порядок некоторого числ а , является содержимое старшего разряда характеристики : Если он равен 0 - порядок отри цательный , в противном случае - порядок положит ельный . В случае записи характеристики цепочк ой цифр 1000..0 принимается , что порядок равен н улю. Рассмотрим еще одну ситуа цию , типи чную для операции над числами в форме с плавающей запятой. Пусть необходимо вычислить разницу чисел X =13,45 и Y =13,45*10**(-5) , при условии , что они представлены в форме с плавающей запятой при разрядности мантиссы , равной 4, и порядка , равной 2. Для простоты операцию проиллюстрируем на п римере десятичной системы счисления. Запишем числа Х и Y в форме с п лавающей запятой : X : 1 3 4 5 + 0 2 Y: 1 3 4 5 - 0 3 Как видно из этой записи , оба числ а представлены в форме с плавающей запято й без иска жения . Не воспроизводя логик у вычитания , принятую в ЭВМ , выполним вычи тание в столбик . Для этого представим оба операнда в естественной форме и так , чтобы соответствующие разряды операндов находили сь друг под другом : X : 1 3 , 4 5 Y : 0 , 0 0 1 3 4 5 ============= X-Y : 1 3 , 4 4 8 6 5 5 Округлим результат , учитывая , что в нашем распоряжении для записи цифр ч исла имеется всего 4 разряда , и запишем его вновь в форме с плавающей запятой , в заданной разрядной сетке : X-Y: 1 3 4 5 + 0 0 Сравнив резул ьтат с ис ходными операндами увидим , что хотя оба оп еранда были отличны от нуля , результат и уменьшаемое полностью совпадают ! Вывод. При вы читании двух чисел большое значение имеют соотношение их величин и разрядность манти сс , используемая для их кодировани я . Т ак что программисты могут столкнуться с н ежелательными последствиями выполнения указанных действий в некоторых критических местах алго ритма . Например , если подобное вычитание выпол няется в условии прекращения цикла , имеющем вид “ (X-Y)>0.01” , то данное условие может никогда не выполниться , т.е . произойде т так называемое зацикливание.
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Счастье - это когда ешь что хочется, а не жрешь что дают.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по математике "Арифметические основы", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru