Что относится к смешанной системе счисления
Каким мне представляется профильный курс информатики
Продолжение. См. № 4/2009
§4. Смешанные системы счисления
Способ записи чисел, при котором числа из позиционной системы счисления с основанием Q записываются с помощью цифр системы счисления с основанием P, называется смешанной P-Q-ичной системой.
Примером смешанной системы является двоично-десятичная система счисления. В ней десятичное число записывается путем замены каждой цифры на 4-разрядный двоичный код. Таблица соответствия для двоично-десятичной системы следующая:
В этой таблице каждой десятичной цифре поставлено в соответствие равное ей четырехзначное двоичное число (нули слева — незначащие). Например, десятичное число 58236,37 в двоично-десятичной форме запишется так:
101 10001 0010 0011 0101,0011 01112–10. Первый слева ноль у целого числа является незначащей цифрой, поэтому его можно не писать.
Для обратного преобразования из двоично-десятичной формы в десятичное число нужно разбить на четверки все знаки двоичного кода: от запятой влево — в целой части и вправо — в дробной части. Затем каждую четверку двоичных цифр заменить на соответствующую десятичную цифру. Например:
Отметим важное обстоятельство: между данными десятичным и двоично-десятичным числом нельзя поставить знак равенства. Двоично-десятичное представление — это всего лишь двоичный код для представления десятичного числа, но никак не равное ему значение в двоичной системе счисления. Выполнение арифметических вычислений над десятичными числами, представленными в двоично-десятичной форме, весьма затруднительно. Тем не менее в истории ЭВМ известны такие примеры. В первой ЭВМ под названием ENIAC использовалась двоично-десятичная система.
Современные компьютеры производят вычисления в двоичной системе счисления. Однако для представления компьютерной информации нередко используются двоично-восьмеричная и двоично-шестнадцатеричная системы.
Двоично-восьмеричная система. В следующей таблице представлено соответствие между восьмеричными цифрами и трехзначными двоичными числами (двоичными триадами), равными по значению этим цифрам.
Записать восьмеричное число в двоично-восьмеричном виде — это значит заменить каждую восьмеричную цифру на соответствующую двоичную триаду. Например:
3517,28 > 11 101 001 111,010 2–8.
А теперь переведем данное восьмеричное число в двоичную систему счисления. Для этого сначала переведем его в десятичную систему, а потом из десятичной в двоичную систему счисления. Вот что получается:
3517,2 8 = 1871,25 = 11101001111,012.
Но это тот же самый двоичный код, что записан выше в двоично-восьмеричной системе! Мы пришли к следующему результату: двоично-восьмеричное число равно значению данного восьмеричного числа в двоичной системе счисления.
Отсюда следует, что перевод чисел из восьмеричной системы счисления в двоичную производится перекодировкой по двоично-восьмеричной таблице путем замены каждой восьмеричной цифры на соответствующую двоичную триаду. А для перевода числа из двоичной системы в восьмеричную его цифры надо разбить на триады (начиная от запятой) и заменить каждую триаду на соответствующую восьмеричную цифру.
Двоично-шестнадцатеричная система счисления. В следующей таблице представлено соответствие между шестнадцатеричными цифрами и четырехзначными двоичными числами (двоичными тетрадами), равными по значению этим цифрам.
Записать шестнадцатеричное число в двоично-шестнадцатеричном виде — это значит заменить каждую шестнадцатеричную цифру на соответствующую двоичную тетраду. Например:
С81F,1D16 > 1100 1000 0001 1111,0001 11012–16
Переведем данное шестнадцатеричное число сначала в десятичную систему счисления, а затем в двоичную систему. Получим:
= 1100 1000 0001 1111,0001 11012
Получился тот же самый двоичный код, что записан выше в двоично-шестнадцатеричной системе! Рассмотренный пример привел к следующему результату: двоично-шестнадцатеричное число равно значению данного шестнадцатеричного числа в двоичной системе счисления.
Следовательно, для перевода числа из шестнадцатеричной системы счисления в двоичную достаточно выполнить перекодировку по двоично-шестнадцатеричной таблице путем замены каждой шестнадцатеричной цифры на соответствующую двоичную тетраду. А для перевода числа из двоичной системы в шестнадцатеричную его цифры надо разбить на тетрады (начиная от запятой) и заменить каждую тетраду на соответствующую шестнадцатеричную цифру.
Доказано, что для любого числа в системе счисления с основанием p = 2 n смешанный двоично-р-ичный код совпадает с представлением этого числа в двоичной системе счисления.
Любые данные в памяти компьютера хранятся в двоичном виде. Восьмеричную и шестнадцатеричную системы счисления используют для компактного представления содержимого памяти компьютера, а также ее адресации. Восьмеричное представление сжимает двоичный код в три раза, а шестнадцатеричное представление — в четыре раза.
Задача. Перевести число 1369,75 в двоичную, восьмеричную и шестнадцатеричную системы счисления.
Наиболее рациональный способ решения задачи следующий. Нужно перевести это число в одну из трех систем с основанием 2, 8 или 16, а затем, используя связь между ними через смешанное представление, выполнить перевод в две другие системы путем перекодировки по таблицам 2–8 и 2–16.
1) Переведем число в восьмеричную систему путем последовательного деления на 8 целой части и последовательного умножения на 8 дробной части числа. Получим:
2) Путем перекодировки по двоично-восьмеричной таблице переведем это число в двоичную систему счисления:
3) Разделив цифры двоичного числа на тетрады (влево и вправо от запятой), переведем двоичное число в шестнадцатеричную систему, используя двоично-шестнадцатеричную таблицу:
1. Дайте определение смешанной системе счисления.
2. Почему двоично-десятичный код не совпадает с двоичным числом, равным данному десятичному числу?
3. Для каких целей в компьютерных технологиях используются восьмеричная и шестнадцатеричная системы счисления?
4. Выполните наиболее рациональным способом следующие переводы чисел: 537,158->X2; 537,158->X16; 10111011010101,010112->X8->Y16.
5. Напишите двоично-четверичную таблицу перекодировки.
6*. Постройте электронную таблицу для перевода четверичных чисел в двоичную систему счисления.
7**. Постройте электронную таблицу для перевода восьмеричных чисел в двоичную систему счисления.
8**. Напишите программу на Паскале перевода целого двоичного числа в восьмеричную систему счисления.
§5. Арифметика в позиционных системах счисления
Во всех позиционных системах счисления выполнение арифметических операций подчиняется одним и тем же законам: коммутативному, ассоциативному, дистрибутивному. В основе арифметических вычислений лежат правила сложения (таблица сложения) и правила умножения (таблица умножения) однозначных чисел.
Сложение и вычитание многозначных чисел в р-ичной системе производится столбиком по тому же алгоритму, что и для десятичных чисел. Соответствующие разряды слагаемых записываются друг под другом. Сложение производится поразрядно, начиная с младшего разряда. Если при суммировании цифр одного разряда сумма оказывается больше р–1 (двузначное число), то в данном разряде результата записывается младшая цифра суммы, а старшая цифра прибавляется к следующему по старшинству разряду (ближайшему слева).
Вычитание — обратная к сложению операция. Если в очередном разряде уменьшаемого стоит цифра меньшая, чем у вычитаемого, то занимается единица у ближайшего слева ненулевого разряда. В результате к вычисляемому разряду уменьшаемого добавляется р. Если единица занималась не у соседнего слева разряда, то к промежуточным разрядам добавляется р–1.
Умножение сводится к многократному сложению со сдвигом разрядов, а деление — к многократному вычитанию.
Двоичная арифметика. Вот как выглядят таблицы сложения и умножения в двоичной системе счисления:
Рассмотрим примеры выполнения четырех арифметических операций с двоичными числами.
Замечание: далее нижний индекс для обозначения системы счисления будет опускаться.
Пример 1. Сложение двоичных чисел. Маленькими цифрами сверху обозначены значения, переносимые при сложении в соседний слева разряд.
Пример 2. Вычитание двоичных чисел. Маленькими цифрами сверху обозначены значения, добавляемые к разряду в процессе переноса единицы из ближайшего ненулевого разряда слева.
Правильность полученного результата можно проверить путем сложения разности с вычитаемым. В результате должно получиться уменьшаемое.
Пример 3. Умножение двоичных чисел.
Пример 4. Деление двоичных чисел. В следующем примере делимым числом является произведение из предыдущего примера, делителем — второй сомножитель. Частное получилось равным первому сомножителю.
Двоичная арифметика — наиболее простая. Эта простота стала одной из причин использования двоичной системы счисления в компьютерах.
Арифметика в других системах счисления. Приведем примеры вычислений в других системах счисления. Рассмотрим пятеричную систему.
Таблица сложения пятеричной системы
Пример сложения и вычитания
пятеричных чисел
Таблица умножения пятеричной системы
Вычисления в системах счисления с основанием
p = 2 n можно производить по такой же схеме, как это делалось выше: построить таблицы сложения и умножения и, заглядывая в эти таблицы, выполнять многозначные вычисления. Но можно пойти другим путем, используя связь таких систем с двоичной системой счисления. Алгоритм вычисления будет следующим:
1) перевести данные числа в двоичную систему счисления, используя таблицу двоичного представления цифр р-ичной системы;
2) выполнить вычисления с двоичными числами;
3) перевести полученное двоичное число в р-ю систему через ту же таблицу (п. 1).
Задача 1. Вычислить сумму двух шестнадцатеричных чисел: 3A8D,1F16 + 2C6,516.
Используем описанный выше алгоритм.
Задача 2. В среде электронной таблицы создать автоматически заполняемую таблицу умножения для восьмеричной системы счисления.
В режиме отображения значений электронная таблица будет иметь следующий вид:
Таблица создается в такой последовательности:
1. В ячейку D1 заносится число 8 — основание системы счисления. Поясняющий текст заносится в соседние ячейки первой строки.
2. В блок B3:H3 заносятся числа с 1 до 7.
3. В блок A4:А10 заносятся числа с 1 до 7.
4. В ячейку В4 заносится формула:
Здесь используются две стандартные функции электронных таблиц:
ЦЕЛОЕ (число) — выделение целой части числа, стоящего в аргументе;
ОСТАТ (число; делитель) — остаток целочисленного деления (аналог операции mod в Паскале).
Задача 3. Создать программу на Паскале, выводящую на экран таблицу умножения в системе счисления с основанием p (2 1 См.: Андреева Е.В., Босова Л.Л., Фалина И.Н. Математические основы информатики. М.: БИНОМ. Лаборатория знаний, 2007.