Системы счисления с основанием 2k

Повторение

  1. Как, не производя никаких дополнительных действий, найти:
    1. Произведение любого двоичного числа на 2?
    2. Остаток от деления любого двоичного числа на 2?
  2. Как проще всего умножить любое двоичное число на 3?
  3. Как проще всего умножить любое 16-ричное число на 24?
  4. Установите признак делимости двоичного числа на 3 (для этого вспомните признаки делимости десятичных чисел).

Умножение и деление на разрядную единицу

    Как и в десятичной системе счисления, так и в любой другой, умножение и деление чисел на разрядные единицы (элементы базиса) сводится к передвижению запятой на соответствующее количество знаков влево или вправо.
    Например, 12F,AC16:1610=12,FAC16; 34,758*6410=34758;

Соответствие чисел, записанных в системах счисления с основанием 2k

    Составляя таблицы сложения и умножения в двоичной системе счисления, вы убедились, что запомнить эти таблицы достаточно легко, выполнять действия над числами в двоичной системе счисления также просто.
    Отметим один существенный недостаток двоичных чисел – большое количество цифр в такой записи. Представьте себе, сколько знаков в двоичной системе счисления будет занимать адрес байта оперативной памяти с номером 65536 – 17 разрядов!
    С другой стороны, очень трудно запомнить таблицы сложения и умножения в 16-ричной системе счисления, зато числа, записанные в 16-ричной системе счисления – короткие, если можно так выразиться.
    Поэтому для внешнего представления данных в компьютере, а также для адресации байтов оперативной памяти, на большинстве современных компьютеров имеется еще одна система счисления – 16-ричная.
    Существуют простые алгоритмы перевода двоичных чисел в шестнадцатеричные и обратно. Эти алгоритмы базируются на том, что 16 – четвертая степень двойки, значит, двоичную запись числа из 4-х цифр можно представить в виде 16-ричной цифры.
   Рассмотрим это правило на примере. Переведем десятичное число 3 258 в двоичную и 16-ричную системы счисления. Получим 1100101110102 и СВА16. Значит, 1100101110102 = СВА16.
   А теперь каждую цифру 16-ричного числа заменим на соответствующую ей четверку двоичных знаков: С16=1210=11002; В16=1110=10112; А16=1010=10102. Записав эти последовательности в порядке следования, получим соответствующее двоичное число.
    Таким образом, для перевода 16-ричных чисел в двоичные каждая 16-ричная цифра представляется в виде 4-х разрядного двоичного числа – двоичной тетрады. Совокупность этих двоичных цифр и дает двоичную запись 16-ричного числа.
    Пример 1. А1F416→X2. Переведем каждую цифру числа в двоичную тетраду:
   A=1010
   1=0001
   F=1111
   4=0100
   Выпишем ответ: А1F416=10100001111101002.
   Пример 2. 4E316→X2. Выполним те же действия:
   4=0100
   E=1110
   3=0011
   Выпишем ответ. Нули старшей цифры, стоящие слева, в двоичной записи числа можно не указывать: 4E316=100111000112.
   Так же переводятся и дроби, только при этом можно не указывать нули младшей цифры дробной части, стоящие справа.
   Пример 3. 5D,B816→X2.
   5=0101
   D=1101
   B=1011
   8=1000
   Получим: 5D,B816=1011101,101112.
   Сформулируем правило: Для перевода 16-ричных чисел в двоичные нужно каждую цифру 16-ричного числа представить в виде двоичной тетрады и записать полученную последовательность двоичных цифр, не указывая нули старшей цифры целой части, стоящие слева, и нули младшей цифры дробной части, стоящие справа.
   При обратном переводе нужно группировать цифры двоичного числа в тетрады, и каждую тетраду заменять 16-ричной цифрой. При этом иногда нужно дописывать недостающие нули в целой и дробной частях.
   Пример 4. 1 0100 1011,112→X16. Заметно, что при разбиении на тетрады, нужно дописать три нуля к старшей цифре целой части и два нуля к цифрам дробной части: 0001 0100 1011,1100. Заменив каждую полученную тетраду 16-ричной цифрой, получим: 0001 0100 1011,11002=14B,C16.
   Итак, для перевода двоичных чисел в 16-ричные нужно двоичное число разбить на тетрады – для целой части – справа налево, для дробной части – слева направо, дописывая недостающие нули. Для каждой тетрады записать ее 16-ричное значение.
   Подобные алгоритмы перевода справедливы для всех систем счисления, основания которых равны некоторой степени двойки. А также в общем случае - для всех пар систем счисления, в которых основание одной системы счисления есть некая степень основания другой системы счисления.
   Например, для перевода восьмеричных чисел в двоичные, нужно каждую цифру восьмеричного числа представить в виде тройки двоичных чисел (двоичной триады), поскольку 8=23. Для обратного перевода двоичное число нужно разбить на триады, и каждую триаду заменить восьмеричной цифрой.
   Пример 5. 135,78→X2.
   1=001
   3=001
   5=101
   7=111
   Получим: 135,78=1011101,1112.
   Пример 6. 10 111,000 0112→X8. Заменив каждую триаду восьмеричной цифрой, получим: 010 111,000 0112=27,038.

Задачи
К оглавлению

Hosted by uCoz