Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002), страница 13
Описание файла
DJVU-файл из архива "Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002)", который расположен в категории "". Всё это находится в предмете "микропроцессорные системы (мпс)" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "микропроцессорные системы" в общих файлах.
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 13 - страница
В восьмеричной системе счисления (ос(а! питЬег лул(ет) в качестве основания используется число 8, а в шестиадиатеричной системе счисления (Ьехайес(та( питЬег лул(ет) — число 16. В табл. 2.1 представлены двоичные целые числа от 0 до 1111 и их восьмеричные, десятичные и шестнадцатеричные эквиваленты. Для восьмеричной системы нужны 8 цифр„поэтому в ней используются цифры 0 — 7 десятичной системы. Шестнадцатеричной системе нужны 16 цифр, поэтому для нее десятичные цифры 0 — 9 дополняются буквами А — Р (Ьехааес!та( йя(г А-Р).
Табл. 2.1. Двоичные, десятичные, восьмеричные и шестнадцатеричные числа ((!естнадцвте- Строка из речные 4 битов Десятич- йосьме- Строка из ные ричные 3 битов 0 0 000 Двоичные 001 О!О 011 100 10! 110 0 ! 10 !! 100 101 1!О 1! 1 ! 000 !001 !010 1011 !!00 1!О! 1!!О 1111 7 8 г) !О 11 !2 13 !4 15 5 6 7 1О 11 !2 13 14 15 16 !7 6 7 8 А В (.." () г ОООО 000! 00!О 0011 О!00 О!О! 0110 0111 !000 !00! 1010 10!! 1100 1!О! 1110 1!!! 52 Главе 2. Числовые системы и коды Восьмеричная и шестнадцатеричная системы счисления удобны для представления многоразрядных двоичных чисел потому, что их основания являются степенями числа 2.
Поскольку в строке из 3 битов возможны 8 различных комбинаций, из этого следует, что каждую такую строку можно однозначно представить одной восьмеричной цифрой, как это сделано в третьем и четвертом столбцах в табл. 2.1. Точно так же 4-битовую строку можно представить одной шестнадцатеричной цифрой согласно пятому и шестому столбцам таблицы. Таким образом, двои нные числа легко преобразовать в вась иеран вы в (Ыпагуга-ос!а! сап»е«в!оп). Начиная с двоичной точки и двигаясь влево, мы просто делимм биты на группы по три и каждую группу заменяем соответствующей восьмеричной цифрой: 100011001!10 = 100011 001 1!О =43!6 !!101!О!!101010012 О!1 101 101 110 10! 00!2 35565!8.
Подобным же образом осуществляется преобразование двоичных чисел в швстнадиатеричныв (Ыпагуча-Ьвхадес!та( сапивгв!оп), за исключением того, что биты надо разбивать на группы по четыре: 10001!001 110 — 1000 1!00 1110 — 8СЕ !110110!1!01010012 0001 ! 101 !011 1010 10012 ! ПВА9$6. В этих примерах мы были вольны добавлять нули слева до полного числа битов, кратного 3 нлн 4, по мере необходимости. Если у двоичного числа есть разряды справа от двоичной точки, то их тоже можно преобразовать в восьмеричные или шестнадцатеричные символы, начиная с двоичной точки и двигаясь вправо. Как слева, так и справа можно добавить нули до числа битов, кратного трем или четырем, как это показано в следующем примере: !О.!01 100101 1 = О!О .
101 100 101 100 =2 5454 - 0010 . ! 011 0010 1100 — 2. В2С «КОГДА МНЕ б4...» Становясь старше, вы обнаруживаете, что шестнадцатеричная система счисления полезна не только применительно к компьютерам. Когда мне исполнилось 40, я сказал друзьям, что мне всеголишь28 . Причем добавление «, » я 16' произнес, конечно, шепотом. В 50 лет мне будет только 32, .
Все люли с большим воодушевлением отмечают «круглые» юбилеи в 20, 30, 40, 50... лет но вы, наверное, сможете уверить своих друзей в том, что десятичная система по своей значимости не является более фундаментальной, чем любая другая. Более важные изменения происходят тогла, когда вам исполняется 2 и 4 года, 8 и 16 лет, 32 и 64 года: в этот момент в вашем возрасте появляется новый старший бит. А то почему вы думаете «Битлз» пели: «Когда мне шестьдесят четыре...»? 2.3. Общие преобразования позиционных систем счнсленмя 63 Осуществить преобразовапие в обратном направлении, из восьмеричного или швстпадиатеричпого вида в двоичный (ос«а1- или Ьвхадвс1та1-(о-Ыпа«у сопке«в!оп) очень легко.
Нужно просто заменить каждую восьмеричную или шестнадцатеричную цифру соответствующей 3- или 4-битовой строкой, как показано ниже: ! 357з = 001 01 ! ! 01 111 2046.17з = 010 000 100 110 . 001 111 ВЕАР б 1011 1110 1010 !!012 9Н46С, = 1001 1111 . 0100 0110 1100 . Восьмеричная система счисления была очень популярна 25 лет назад: тогда у ряда миникомпьютеров сигнальные лампочки и переключатели на передней панели были разбиты на группы по три. Однако сегодня восьмеричная система чисел используется не так часто из-за преобладания машин, которые оперируют 8- разрядными байтами (Ьу«ев). Из восьмеричного представления многобайтовых величин трудно извлечь значения отдельных байтов; например, как выглядят в восьмеричной записи четыре 8-разрядных байта 32-разрядного числа, которое в восьмеричном представлении имеет вид: 12345670 ! 23з7 В шестнадцатеричной системе 8-разрядный байт представляется двумя цифрами, а 2п цифр изображают п-байтовое слово: каждая пара цифр образует в точности один байт.
Например, 32-разрядное шестнадцатеричное число 5678АВСР, состоит из четырех байтов, значения которых равны 56 ии 78 нг А В м и СРм. В этом контексте состоящее из 4-х битов одноразрядное шестнадцатеричное число называют иногда пачубай«пам (п1ЬЫе); 32-разрядное (4-байтовое) число состоит из восьми полубайтов.
Шестнадцатеричные числа часто используют при описании адресного пространства в памяти компьютера. Например, о компьютере с 16-разрядными адресами могут сказать, что его память, предназначенная для чтения и1или записи, располагается по адресам О-ЕЕГР,, а в отношении части памяти с адресами «000 — г г г г, предусмотрено только чтение из нее.
Во многих компьютерных языках программирования используется префикс «Ох» !Охр«е~х) для обозначения шестнадцатеричной записи числа, например: ОхВГСОООО. 2.3. Общие преобразования позиционных систем счисления В общем случае преобразование от системы счисления с одним основанием к системе счисления с другим основанием нельзя выполнить простой подстановкой; требуются арифметические операции. В этом параграфе мы покажем, как числа, записанные в числовой системе с произвольным основанием, преобразуются в десятичные числа и наоборот с использованием десятичной арифметики. В параграфе 2.1 мы видели, что при произвольном основании значение числа задается формулой: 54 Глава 2.
Чмеловыесистеыым коды где « — основание системы счисления и имеются р цифр слева от точки, разделяющей целую и дробную части числа, и п цифр справа от нее. Значение числа можно найти, преобразуя каждый разряд этого числа в его десятичный эквивалент и распространяя правила десятичной арифметики на приведенную формулу. Вот несколько примеров: 1СЕ8, =! !бзь12!6 +14!6'+8!6 =7400м Е)АЗ, =15 16 +1 16 +!О 16'+3 16 =61859ю 4365' 4,8з-ь381„6,8оч-58-1 286625 о ' ~о 132.3 =1.4 +34'ч-24 +34'=30.75 ьо' Для перевода в десятичную форму целых чисел можно получить экономное правило, используя представление числа в виде поочередных вложений (певгва ехрапв!оп 1а«ти!а): В = (( ((а «+ Ы ) . «+ ) «+ г7 ) «ч- г! Другими словами, приняв значение суммы равным нулю и начиная с крайнего левого разряда, будем умножать сумму на «и к результату прибавлять следующий разряд до тех пор, пока не будут обработаны все разряды.
Можно записать, например: Е!АС, =(((!5) 16+1).16+10) 16+12 Эта формула используется в итеративных алгоритмах преобразования, реализуемых программно (таких, как алгоритм, приведенный в табл. 4 38). Она служит также основой очень удобного метода преобразования десятичного числа 0 к представлению в системе счисления с основанием «(аес!та!Ма-«айх-«сато«л!оп). Давайте посмотрим, что получится, если поделить правую часть этой формулы на «. Поскольку с тагаемое со скобками делится на «нацело, частное от деления равно а остаток равен Ы . Таким образом, Ы можно вычислить как остаток при делении О на «.
Кроме того, частное от деления Д является таким же по форме, как и 13 в начальной формуле. Поэтому последовательные шаги при делении на «дают очередные значения в разрядах справа налево, до тех пор, пока не будут получены все разряды. Приведем примеры этой процедуры: ! 79 —: 2 = 89 остаток 1 (младший разряд) —:2 = 44 остаток 1 2 = 22 остаток 0 г«2 = 11 остаток 0 —:2 = 5 остаток 1 —:2 = 2 остаток 1 2 = 1 остаток 0 —;2 = 0 остаток 1 (старший разряд) 179до=! 01100! !з 2.3.