Солонина А., Улахович Д. Алгоритмы и процессоры цифровой обработки сигналов (2002) (1095891), страница 27
Текст из файла (страница 27)
Данные >33 >32 сзультаты совпалают. в) положительное дробное б 5 4 З г 1 О в) положительное цепов >тэп„=+ПОМО> = 0110110>, = 01 101101,„ б) отрицательное дробное 5 4 3 2 1 0 б) отрицательное целое -173, = -1101101, = 11101101 = 10010011 Фармпйраввнив дапагнитвпьнога кода. инвврсик всех битов, коамв знакового: 10010010 добавление 1 к младшему биту.' 10010011 5 4 3 2 1 0 Алгоритмы и процессоры цифровой обработки сигналов Р кмл >падшему биту полученного числа ирибавляетси 1 с соблюленисм правил сложении двоичных чисел.
р льгот представляет собой чисто в дополнительном коде. Правило пере)тезул вола в а в донос >штельиый кол не завнснбт одт тина чисел — пел ыс или дробные П имеры перевоза из прямого кола в доиолиптечьнь>Г> представлены нз > пи>л рис. 3.8 и 3.9. Рис. 3.8. Примеры целых чисел в дополнительном коде Обратны>1 перевод числа из допозиитсльного кода н ирямои осуществляется точно по гому же правилу. Привелем пример обратного перелопа из дополнительного кода в прямой. Пусть чапо число в лополнитедьном коле: 1001001>шн (жирным шрифтом вылелси знаковый бит). Формирован>лс прямого кода: Р инвсрс>в всех битов.
кроме знакового -4 1110! !00; Р лобавлсние 1 к младшему биту — > 11101!О!и„. КОЛ НаЗЫвастея Г>адат>>ГНЛ>а>ЫГЫЛГ, ИОСКОЛЬЛу ОтрнпатЕЛЬНОС й>ООИОЕ ЧИСЛО можно представить кал разность межа> числом 2 (беззнаковым пслылй и модулем этого числа, т. е. как пополнение к 2. В качестве примера, получил> 2. лополнитечьньи> код отрииатслыюго числа — 0.875, кал его дополнения к -. Модуль этого числа в грормате (33 равен О,!1112). Вычитая 0,111!3> из числз 2 = !0,000 имсслт Результат 1,001(2>. Определил> Лополнитспьиый Кот -(>О> —, ГЗ> числа — 0,875 по привеленнол>у выше правил>1 000 — 0,875 — > — 0,111П» — 11!1н„— > инверсия нсех битов, кроме знакового -4 100 тобавлсние 1 в младшему б>ггу — > 100 ! „„н. О 5525125нв = ОЛМООО>ш = Он тают„= Оы>ООО> -0.5525125пи = -0.1110001 = 11110001 = 10001111 Формираввнив дапалнитвпьнага кода: инквраип всех битов.
кроме знакового: 10001110 добавление 1 к младшему биту: 10001111 У б 5 4 3 2 1 0 Рис. 3.9. Примеры дробных чисел е дополнительном коде На рис. 3.!О указаны веса б>гсов и приведено правило вычисления лесятпчноп> эквивалента. соответствующего лвоичному цезолту числу в дополнительном коде. На рис. 3. ! ! указаны веса битов и приведено правило вычисления дссятично>о эквивалента, соответствующего двоичном> драГ»га>>1 числу в дополнительном коде. Сравнивая рис. 3.10 и 3.11, еше раз подчеркнем, что одинаковое прелставление чисел с ФТ может иметь рауну>а трактовку типа чисел, а слеловательно, соответствовать разным числам. Приводимые правила нетрулно распространить на л>обои формат.
На аралу с простотои выполнения арифметических операций (см. далее). в лоп, Ноль полнительном коде устраняется неоднозначность представления и 'ля. у оль в прямом кодс может быть представлен и как 0000...0 и как 1000...0. а в ло лополнительиом коле только как 0000...0. Это легко проверить, вычислив лля чи.
чисел. представленных в лополнительном коде, нх десятичные эквиваленты: Р ОООО... = О(ю>! Р 1000... = — 1(ш). )иана 3. Данные в) весь битов У 6 6 4 Э 2 1 О -2» 2» 2» 2' 2* 2» 2' 2» б) дОООпннтвпьннй кед гллэ»нтепыогч целою числа У 6 $4 3 2 1 О ДО»ьткчьь й»киивлэнт )2»+ 2' » 2!» 2»! = 63 в) максимальное положительное ЦЕЛОЕ чЯСПО 4) доввпьнтепьнь й код Отрицвтвпьчсгв целого чнспв б 4 3 2 1 Е 6 $4 з г ! с Десятичный эквивалент гв 1-127 Десятичным иеяввпкнт -2'»г»»2»+г' -вч б) минимальное положительное цепов число в) весь бит»в 7 6 5 4 3 2 1 С десятичный эквивалонт 2» = 11»в в) максимальное по модулю отрицательное целое число 2' 23 2» 2 2» 2'» 2» 6) дсполнчтепьннн кщ! пеппжнтвпьньго проблею чи»пв В б 4 3 2 1 О У 6 5 3 2 1 О Десятичный э»внввлент -2» = -128 6) минимальное по модулю отрицательное целое число Двоичччый Окьнввпент 2 '+2 !+23»»2 »=0,6464375 4)дьп»пчитепьнь й »Од Отрнцвтвпьнс»О гцг»бнс»О чя»ль в б 4 г г 1 о У 6 5 4 З 2 ! 6 десятичныиммивапент -1ли Десьткчн»й Омиввленг -2" 2'Г 2"' 2» = -ОДЕ625 Алгорнпиы и процессоры цифровой обработки сигналов Рис.
3.10. Десятичный эквивалент дваичнага целого числа в дополнительном коде Рис. З.11. десятичный эквивалент двоичного дробного числа в дополнительном коде Ъ !!г рис. 3.12 приведены примеры максимальных и минимальных по модулю значении лля положительного и отрицательного целых чнсеч в доиолнн- течьном коле в формате "слово" ллиной 8 битов и их десятичные эквивален- ты. Десятичные эквиваленты целых чисел для формата "слово" ллины и би- тов (тле и = Ь + 1, Ь вЂ” количество значащих битов) равньс 72 2" — ! — максимальное паложитечьное; ,"! ! — минимапьное положительное; !ч — 26 — максимальиое По МОДУлю отрицательное; !2 — 1 — лгиннмальное по молулю отрицательное. 7 В б 4 3 2 1 О Риа. 3.12. мвксимвльныв и минимальные целые числа в дополнительном када 736 137 ! дава 3.
Денные Десятичный экэивепент 1 — 24 = 0.9921575 5) минимальное пояснительное дробное число десятичный эквиеэлмо 2 э = 0,00?5125 в) максимальное ло модулю отричэтельное дрсбное число 5 5 4 З г 1 О Десятичный эьэивелент -11те г) минимальное по модулю отрицательное дробное число Дэсятичный эквивалвнт -2 э = — О,ОО?5125 Замечание Алгоритмы и процессоры цифровой обработки сигнелое На рис. 3.13 прштецеиы примеры максимальных и минимальных значений для положительного н отрииатетьного дробны ° чисел в дополнительном коде в формате (;)7 и их десятичные эквиваленты.
Десятичные элвиваленты дроонвгт чисел в формате (.Ь ля ины равны: ! (3 1 — 2 5 — максимальное положительное: ь3 2 г — минимальное пояожительное; ь3 — 1 — максимальное по модулю отрицательное; П -2 г — минимальное по модулю отр1шатслыюе. е) максимальное положительное дробное число 7 б 5 4 3 2 1 0 7 а 5 4 3 2 1 О 7 Б 5 4 3 2 1 0 Рис. 3.13. Максимальные и минимальные дробные числа в дополнительном коде 1(тя чисел, предсзавленныл в дополнительном коле, старшин разряд остаетсй ЗН9КООЫМ. Трактовка типа чисел.
представленных в дополнительном коде в 4юрмате -слоао". весьма важна при сохранении этих чиссз в форматал 'двойное слоео" и "расширенное слово". Рассмогрим дкт примера. Пример !. Число, представленное в цополиительном кодс в формате "слово" д Отпой 8 битов (я = 8), сохраняется в формате "двойное стово" длиной 2л (рпс. 3.14). В зааисимости от типа данных выпол1шются следующие дейстаия: д для целых чисел (рис. 3. !4. О): э ЧИСЧО (СО ЗиаКОМ) В ДОИОЛНИ?ЕЛЬИОЧ КОДЕ СОХргияЕтея В МЛацШСМ СЛО- вс Е5Р с выравниванием по правому краю; э в старшем слове М5Р и в "лишних" стари1их битах младшего с това Е5Р происхолит расгггггрегггге знака; ° знакоеылг ста1ювнтся старший бит М5В слова М5Р:( 5Р; (3 для дробныт чисел (рис.
3.14. б): э число (со знаком) в дополпительноьг коде сохраняется в старшем слове М5Р с выравниванием по левому краю; ° знокоеылг становится старший бит М5В слова М5Р1Е5Р'„ ° биты младшего слова Е5Р н "лишнис" младшие биты старшсго слова М5Р заполняются пулями. Пример 2. Число, представленное в лопознительном коле в формате "слово" алиной 8 битов (и = 8) сохраняется в форма~с "расширенное слово" длиной )г= 2().
Независимо от тина данных выполняются слецунзшие действия (рис. 3.!5. л. б): П чис'го (со зиакочг) в дополнительном кодс разчешается в слове М5Р:15Р (см. Оь1шс); (3 в расширении ЕХТ и!юнсхолпт расаагрение знак?7, (3 знаковыд становится старший бит М5В слова ЕХТ:М5Р:) 5Р. риаецеииых иримероа Огшнтл что расиийзентю знака числа предо?ца"гиного в допол1гительпом кодс, не лтеняет его значения (см. десятичные зкаиааленты нй рис. 3.14 и 3.15). Это преиыугцестяо дополнительного кода устоя я частности а операшигк пересылок данных когда нзм форьгат ил прецстааления (сгг. разд.
3.7.!0). В заключение отметим. что непосредственно а проиессоре преобразование доа нз прямого а дополнительный и обратно не производится. Оно вы"озггяется на языке ассемблера на этапе трансляшти программы. Современные АЦП выдают значения отсчетов в дополнительном коде. глава 3.
Данные в) целое число 7 Б 5 4 3 2 1 7 Б 5 4 3 2 1 0 десятичный зквиввлент -2т + 2в + 2г - 128 + 1б + 4 - 108 Расширенное слово Двойное слово 19 1В 17 1Б 15 14 13 12 11 10 9 8 7 В 5 О 3 2 1 О 1 1 1 1 1 1 1 1 1 1 1 1 1 0 О 1 0 1 0 О 15 1413 1211 10 9 8 т 6 5 4 3 2 1 О РасширениеЗ ))елее число ЕХТ 3 Расширение 3 ВЗР ВЗР МЗР Десятичный зкеивапент -2'в + 2и в 2'т + 2гв + 2'в + 2гв+ 2гг + 2и + 2гг + 2го + 2в + 2в + 2т + 2„г Десятичный зквиавлент 2гв + 2гв + Би + 2'г + 2н + 2го + 2в + 2в + 2т * 2в + 2г я -108 б) дробное число б) дробное число Слово 7 Б 5 4 3 2 1 0 Слово 7 6 5 4 3 2 ! 0 3 десятичным эквивалент -2в о 2'+ 2' =-1 + О 125 + О 03125 = О84375 Десятичный эквивалент 2о+ 2-г о 2.в — -1 о 0,125 * 0,03125 = -0,84375 Расширенное слово Двойное слово 15 1413 1211 109 8 7 6 5 4 3 2 1 0 19 18 17 16 15 14 13 12 11 10 9 В 7 6 5 4 3 2 1 О 1 1 ! 1 1 О О 1 О 1 0 0 О 0 0 0 О 0 0 0 ЕХТ Дробная часть Нули МВР БЗР МЗР ВЗР Десятичный зквивалент -2» + 2 г в 2 в = -0.84375 3 — энзк 3-знак Рис.