Меню

Двоично десятичная система счисления Информатика



Двоично-десятичная система счисления — Информатика

Обозначение смешанной системы счисления

В мире электронно-вычислительных технологий существуют различные системы счислений. Одним из классов систем счисления является класс смешанной системы счисления.

Определение Смешанная система счисления — это такая система счисления, в которой числа одной системы с основанием Р, записываются цифрами другой системы с основанием Q, причем Q меньше Р. В данной системе Q считается младшим основанием, а Р — старшим, такая система называется Q-Р-ичной.

Таких систем существует несколько, одной из них является двоично-десятичная система счисления.

Построение в двоично-десятичной системе

В двоично-десятичной системе счисления каждая десятичная цифра от 0 до 9 производится с помощью четырехразрядного числа, с использованием лишь элементарных цифр 0 и 1. А именно для записи цифры 0 используется код 0000, 1 — 0001, 2 — 0010, 3 — 0011,4 — 0100, 5 — 0101, 6 — 0110, 7 — 0111, 8 — 1000, 9 — 001. Для примера рассмотрим число десятичной системы счисления 925, в двоично-десятичной системе это число запишется как 1001 0010 0101. Формально это выглядит вот как:

925 10 = 10010010010 12-10.

В этой записи используются четверки цифр двоично-десятичной системы, которые последовательно отображают цифры 9, 2 и 5. Эти последовательные четверки цифр называются тетрадами.

В двоичной системе для изображения чисел также используются 0 и 1, но невзирая на это, изображения десятичного числа в двоично-десятичной системе отличается от его записи в двоичной системе счисления. К примеру, та же запись 100100100101 в этих двух системах будет обозначать разное десятичное число. Это выглядит так:

100100100101 2-10 = 925 10;
100100100101 2 = 2341 10.

Подобное изображение числа зачастую используется в качестве вспомогательного этапа при трансформации числа из двоичной в десятичную систему счисления и наоборот. В двоично-десятичной системе счисления алгоритмы арифметических вычислений многозначных чисел намного сложнее, чем в простых системах счисления, но тем не менее эта система счисления часто используется для этих операций в микросхемах компьютеров и калькуляторов.

При корректировке результатов элементарных арифметических операций с числами, записанными с помощью двоично-десятичных кодов, используют специальные команды для преобразования их в двоично-десятичную систему счисления. В данном случае применяется правило: для получения в результате простой арифметической операции сложения или вычитания число в тетраде, большее чем 9, к ней нужно прибавить число 6. Такое уравновешивание по разрядам производится обычно с помощью двоично-десятичной системы счисления. При этом самым целесообразным является комплексное использование двоичной и двоично-десятичной систем счисления, так как при этом количество тактов уравновешивания намного меньшее, чем при использовании иных систем счисления.

Для чего нужно использование двоично-десятичной системы счисления

Человеческому глазу понятна десятичная система изображения чисел, и мы используем ее практически в любой сфере жизни, где сталкиваемся с числами. Работа электроники построена на использовании двоичной системы вывода чисел. Поэтому вариант применения системы счисления с помощью двоично-десятичных кодов является компромиссным. Двоично-десятичные коды используется в тех микросхемах приборов, где есть потребность частого ввода и вывода десятичных чисел, к примеру, в электронных часах, калькуляторах, таймерах, дисплеях бытовой техники и прочих приборах, в которых нет смысла использовать универсальные микрокоды из-за ограниченного объема памяти.

В арифметических логических устройствах электронно-вычислительных машин есть специальные блоки арифметических вычислений, выполняющих операции на основании двоично-десятичной системы счисления. Во многих случаях это существенно повышает производительность электронно-вычислительных машин. Например, если рассмотреть системы автоматизированной обработки данных, в которых практически не используются арифметические вычисления, то процесс трансформации чисел из одной системы в другую занял бы длительный ресурс времени и памяти. Поэтому в микропроцессорах в таком случае применяются двоичные коды, но при этом они умеют распознавать команды трансформации в двоично-десятичные коды. В итоге результат изображается на дисплее в десятичной форме изображения числа, понятной человеку.

Выгоды применения двоично-десятичной системы

Применение двоично-десятичной системы счисления в комплексе с двоичной системой, которая является одной из основных, позволяет создавать на рынке высокопроизводительные электронно-вычислительные машины. Это становится возможным благодаря применению блока десятичных арифметических операций без необходимости программного трансформирования чисел в двоичную систему.

Трансформация чисел в двоично-десятичную систему из десятичной не требует громоздких арифметических вычислений, а является простой операцией с использованием четырехразрядных кодов тетрад, что производится автоматически при помощи элементарных алгоритмических программ.

Так как две двоично-десятичные цифры в сумме занимают всего 1 байт памяти, то с его помощью можно записать любую десятичную цифру от 0 до 99. Таким образом, используя всего лишь 1 байт для изображения двух любых десятичных цифр, возможно записать любое количество двоично-десятичных чисел с необходимым количеством десятичных разрядов.

Источник

Каким мне представляется профильный курс информатики

Продолжение. См. № 4/2009

§4. Смешанные системы счисления

Способ записи чисел, при котором числа из позиционной системы счисления с основанием Q записываются с помощью цифр системы счисления с основанием P, называется смешанной P-Q-ичной системой.

Примером смешанной системы является двоично-десятичная система счисления. В ней десятичное число записывается путем замены каждой цифры на 4-разрядный двоичный код. Таблица соответствия для двоично-десятичной системы следующая:

В этой таблице каждой десятичной цифре поставлено в соответствие равное ей четырехзначное двоичное число (нули слева — незначащие). Например, десятичное число 58236,37 в двоично-десятичной форме запишется так:
101 10001 0010 0011 0101,0011 01112–10. Первый слева ноль у целого числа является незначащей цифрой, поэтому его можно не писать.

Для обратного преобразования из двоично-десятичной формы в десятичное число нужно разбить на четверки все знаки двоичного кода: от запятой влево — в целой части и вправо — в дробной части. Затем каждую четверку двоичных цифр заменить на соответствующую десятичную цифру. Например:

11 1000 0010 1001 0011,0101 1001 1000 2–10 -> 3823,598

Отметим важное обстоятельство: между данными десятичным и двоично-десятичным числом нельзя поставить знак равенства. Двоично-десятичное представление — это всего лишь двоичный код для представления десятичного числа, но никак не равное ему значение в двоичной системе счисления. Выполнение арифметических вычислений над десятичными числами, представленными в двоично-десятичной форме, весьма затруднительно. Тем не менее в истории ЭВМ известны такие примеры. В первой ЭВМ под названием 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

Переведем данное шестнадцатеричное число сначала в десятичную систему счисления, а затем в двоичную систему. Получим:

Получился тот же самый двоичный код, что записан выше в двоично-шестнадцатеричной системе! Рассмотренный пример привел к следующему результату: двоично-шестнадцатеричное число равно значению данного шестнадцатеричного числа в двоичной системе счисления.

Следовательно, для перевода числа из шестнадцатеричной системы счисления в двоичную достаточно выполнить перекодировку по двоично-шестнадцатеричной таблице путем замены каждой шестнадцатеричной цифры на соответствующую двоичную тетраду. А для перевода числа из двоичной системы в шестнадцатеричную его цифры надо разбить на тетрады (начиная от запятой) и заменить каждую тетраду на соответствующую шестнадцатеричную цифру.

Можно ли на основании приведенных частных примеров делать глобальные выводы о том, что двоично-восьмеричный (двоично-шестнадцатеричный) код любого восьмеричного (шестнадцатеричного) числа совпадает с двоичным значением этого числа? Нет, конечно! Это утверждение требует доказательства. Такое доказательство существует 1 .

Доказано, что для любого числа в системе счисления с основанием p = 2 n смешанный двоично-р-ичный код совпадает с представлением этого числа в двоичной системе счисления.

Поскольку 8 = 2 3 , а 16 = 2 4 , то сформулированное правило относится к восьмеричной и шестнадцатеричной системам. Очевидно, что такая же связь существует между двоичной и четверичной системами счисления, поскольку 4 = 2 2 .

Любые данные в памяти компьютера хранятся в двоичном виде. Восьмеричную и шестнадцатеричную системы счисления используют для компактного представления содержимого памяти компьютера, а также ее адресации. Восьмеричное представление сжимает двоичный код в три раза, а шестнадцатеричное представление — в четыре раза.

Задача. Перевести число 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 заносится формула:

5. Формула из ячейки В4 копируется в блок B4:H10 .

Здесь используются две стандартные функции электронных таблиц:

ЦЕЛОЕ (число) — выделение целой части числа, стоящего в аргументе;

ОСТАТ (число; делитель) — остаток целочисленного деления (аналог операции mod в Паскале).

Учимся программировать

Задача 3. Создать программу на Паскале, выводящую на экран таблицу умножения в системе счисления с основанием p (2 1 См.: Андреева Е.В., Босова Л.Л., Фалина И.Н. Математические основы информатики. М.: БИНОМ. Лаборатория знаний, 2007.

Источник

Каким мне представляется профильный курс информатики

Продолжение. См. № 4/2009

§4. Смешанные системы счисления

Способ записи чисел, при котором числа из позиционной системы счисления с основанием Q записываются с помощью цифр системы счисления с основанием P, называется смешанной P-Q-ичной системой.

Примером смешанной системы является двоично-десятичная система счисления. В ней десятичное число записывается путем замены каждой цифры на 4-разрядный двоичный код. Таблица соответствия для двоично-десятичной системы следующая:

В этой таблице каждой десятичной цифре поставлено в соответствие равное ей четырехзначное двоичное число (нули слева — незначащие). Например, десятичное число 58236,37 в двоично-десятичной форме запишется так:
101 10001 0010 0011 0101,0011 01112–10. Первый слева ноль у целого числа является незначащей цифрой, поэтому его можно не писать.

Для обратного преобразования из двоично-десятичной формы в десятичное число нужно разбить на четверки все знаки двоичного кода: от запятой влево — в целой части и вправо — в дробной части. Затем каждую четверку двоичных цифр заменить на соответствующую десятичную цифру. Например:

11 1000 0010 1001 0011,0101 1001 1000 2–10 -> 3823,598

Отметим важное обстоятельство: между данными десятичным и двоично-десятичным числом нельзя поставить знак равенства. Двоично-десятичное представление — это всего лишь двоичный код для представления десятичного числа, но никак не равное ему значение в двоичной системе счисления. Выполнение арифметических вычислений над десятичными числами, представленными в двоично-десятичной форме, весьма затруднительно. Тем не менее в истории ЭВМ известны такие примеры. В первой ЭВМ под названием 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

Переведем данное шестнадцатеричное число сначала в десятичную систему счисления, а затем в двоичную систему. Получим:

Получился тот же самый двоичный код, что записан выше в двоично-шестнадцатеричной системе! Рассмотренный пример привел к следующему результату: двоично-шестнадцатеричное число равно значению данного шестнадцатеричного числа в двоичной системе счисления.

Следовательно, для перевода числа из шестнадцатеричной системы счисления в двоичную достаточно выполнить перекодировку по двоично-шестнадцатеричной таблице путем замены каждой шестнадцатеричной цифры на соответствующую двоичную тетраду. А для перевода числа из двоичной системы в шестнадцатеричную его цифры надо разбить на тетрады (начиная от запятой) и заменить каждую тетраду на соответствующую шестнадцатеричную цифру.

Можно ли на основании приведенных частных примеров делать глобальные выводы о том, что двоично-восьмеричный (двоично-шестнадцатеричный) код любого восьмеричного (шестнадцатеричного) числа совпадает с двоичным значением этого числа? Нет, конечно! Это утверждение требует доказательства. Такое доказательство существует 1 .

Доказано, что для любого числа в системе счисления с основанием p = 2 n смешанный двоично-р-ичный код совпадает с представлением этого числа в двоичной системе счисления.

Поскольку 8 = 2 3 , а 16 = 2 4 , то сформулированное правило относится к восьмеричной и шестнадцатеричной системам. Очевидно, что такая же связь существует между двоичной и четверичной системами счисления, поскольку 4 = 2 2 .

Любые данные в памяти компьютера хранятся в двоичном виде. Восьмеричную и шестнадцатеричную системы счисления используют для компактного представления содержимого памяти компьютера, а также ее адресации. Восьмеричное представление сжимает двоичный код в три раза, а шестнадцатеричное представление — в четыре раза.

Задача. Перевести число 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 заносится формула:

5. Формула из ячейки В4 копируется в блок B4:H10 .

Здесь используются две стандартные функции электронных таблиц:

ЦЕЛОЕ (число) — выделение целой части числа, стоящего в аргументе;

ОСТАТ (число; делитель) — остаток целочисленного деления (аналог операции mod в Паскале).

Учимся программировать

Задача 3. Создать программу на Паскале, выводящую на экран таблицу умножения в системе счисления с основанием p (2 1 См.: Андреева Е.В., Босова Л.Л., Фалина И.Н. Математические основы информатики. М.: БИНОМ. Лаборатория знаний, 2007.

Источник

ДВОИЧНО-ДЕСЯТИЧНАЯ СИСТЕМА

Двоично-десятичная система счисления. Десятичные цифры от 0 до 9 заменяются представляющими их двоичными тетрадами: 0=0000, 1=0001, 2=0010, 3=0011, 4=0100, 5=0101, 6=0110, 7=0111, 8=1000 и 9=1001. Такая запись очень часто используется как промежуточный этап перевода числа из десятичной системы в двоичную или обратно. Так как 10 не является точной степенью 2, то используются не все 16 тетрад, а алгоритмы арифметических операций над многозначными числами здесь более сложны, чем в основных системах счисления. И тем не менее, двоично-десятичная система счисления применяется даже на этом уровне во многих микрокалькуляторах и некоторых компьютерах (в частности, «Ямаха» стандарта MSX).

Поскольку человеку наиболее привычны представление и арифметика в десятичной системе счисления, а для компьютера — двоичное представление и двоичная арифметика, была введена компромиссная система двоично-десятичной записи чисел. Такая система чаще всего применяется там, где существует необходимость частого использования процедуры десятичного ввода-вывода. (электронные часы, калькуляторы, АОНы, и т.д.). В таких устройсвах не всегда целесообразно предусматривать универсальный микрокод перевода двоичных чисел в десятичные и обратно по причине небольшого объема программной памяти.

Принцип построения этой системы достаточно прост: каждая десятичная цифра преобразуется прямо в свой десятичный эквивалент из 4 бит, например: 369110=0011 0110 1001 0001DEC:

Десятичное число 3 6 9 1 Двоично-десятичное число 0011 0110 1001 0001

Преобразуем двоично-десятичное число 1000 0000 0111 0010 в его десятичный эквивалент. Каждая группа из 4 бит преобразуется в её десятичный эквивалент. Получим 1000 0000 0111 0010DEC = 807210:

Двоично-десятичное число 1000 0000 0111 0010 Десятичное число 8 0 7 2

Микропроцессоры используют чистые двоичные числа, однако понимают и команды преобразования в двоично-десятичную запись. Полученные двоично-десятичные числа легко представимы в десятичной записи, более понятной людям.

Преобразование двоичных чисел в двоично-десятичные

Арифметико-логическое устройство AVR-микроконтроллеров (как и других микропроцессоров) выполняет элементарные арифметические и логические операции над числами, представленными в двоичном коде. В двоичном коде считываются результаты преобразования АЦП, в двоичном коде (в формате целых чисел или чисел с плавающей точкой) удобно выполнять обработку результатов измерения. Однако, когда окончательный результат отображается на индикаторе, он должен быть преобразован в десятичный формат, удобный для восприятия человеком.

В данном разделе рассматриваются программы преобразования двоичных чисел в двоично-десятичные.

1. Форматы представления десятичных чисел

В настоящее время распространены два формата представления десятичных чисел в микропроцессорах — упакованный двоично-десятичный код (BCD-Binary-Coded Decimal) и неупакованный десятичный код [1].

Упакованный BCD-код — это такое представление десятичного числа, когда каждая десятичная цифра представляется 4-х битным двоичным позиционным кодом 8-4-2-1. При этом байт содержит две десятичные цифры. Младшая десятичная цифра занимает правую тетраду (биты 3 : 0), старшая — левую тетраду (биты 7 : 4). Многоразрядные BCD-числа занимают несколько смежных байт. Если число является знаковым, то для представления знака в BCD-формате отводится старшая тетрада старшего байта. Для кодирования знака можно использовать шесть двоичных кодовых комбинаций, которые не используются для представления десятичных цифр. Это коды 1010-1111 (A-F в шестнадцатеричном представлении). Обычно для кодирования знака плюс применяют код 1100 (С), а для знака минус — 1101 (D).

Exa6945mple.jpg

Exam9689378ple.jpg

Неупакованный десятичный код является подмножеством международной таблицы кодирования символов ASCII (Таблица 1). Видно, что для хранения неупакованных десятичных чисел требуется в два раза больше памяти, так как каждая цифра представляется 8-битным кодом. Таблица 1: ASCII-коды десятичных цифр

2. Преобразование целых 16-битных чисел в двоично-десятичные числа

На сайте www.atmel.com предлагается программа «bin2bcd16» для преобразования целых 16-битных двоичных чисел в двоично-десятичные упакованные числа. В данной статье рассматривается программа «bin16bcd5» (см. Приложение, Программа 1), написанная Терешкиным А. В. согласно алгоритму, изложенному в [1], и выполняющая ту же задачу. Последняя программа по быстродействию, длине кода и количеству используемых регистров оказалась более эффективной, чем первая.

Алгоритм программы «bin16bcd5» заключается в следующем. Предположим, что имеется целое беззнаковое 16-битное число (диапазон от 0 до 65535). Очевидно, что необходимо найти 5 десятичных цифр. Способ преобразования заключается в том, чтобы, вычитая из исходного числа число 10000, сначала определить десятичную цифру десятков тысяч. Затем находится цифра тысяч последовательным вычитанием числа 1000 и т. д. Вычитание каждый раз производится до получения отрицательной разности с подсчетом числа вычитаний. При переходе к определению каждого следующего десятичного разряда в регистрах исходного числа восстанавливается последняя положительная разность. После того, как будет найдена десятичная цифра десятков, в регистрах исходного числа останется десятичная цифра единиц.

Программа «bin16ASCII5» (см. Приложение, Программа 2) преобразует целое двоичное 16-битное число в десятичное неупакованное число. При этом используется тот же алгоритм.

3. Преобразование двоичной дроби в двоично-десятичную дробь

Двоичная дробь, по определению, представляется следующим выражением:

0.A-1A-2 . A-m = A-1*2-1 + A-2*2-2 + . A-m*2-m

Из этого представления следует алгоритм преобразования (Рис. 2), который содержит m шагов. На каждом шаге к двоично-десятичному результату прибавляется очередная двоичная цифра и весь результат делится на 2.

На изображены двоичный регистр, который содержит исходную двоичную дробь и регистр двоично-десятичного упакованного результата. Для наглядности у обоих регистров также показаны разряд единиц и положение точки, которые в памяти микропроцессора никак не представлены, но положение которых всегда строго оговорено. Количество циклов рассматриваемого алгоритма равно количеству бит двоичной дроби. Разрядность двоично-десятичного регистра определяется требуемой точностью вычислений.

Сложить эту цифру с двоично-десятичным числом означает, что ее нужно поместить в разряд единиц двоично-десятичного числа, откуда при последующем делении на два цифра A-i сдвинется в старший разряд старшей тетрады десятичной дроби. При программировании мы можем представлять, что разрядом единиц десятичной дроби является бит переноса С.

При делении на два двоично-десятичного упакованного числа, так же как и при делении двоичного числа, его сдвигают вправо на один разряд. При этом на два делится каждая тетрада, то есть каждая десятичная цифра. При делении четной десятичной цифры в соответствующем разряде снова получается десятичная цифра, и никакой коррекции не требуется. При делении на 2 нечетной десятичной цифры остаток, равный 5, должен быть добавлен к более младшему десятичному разряду, но на самом деле при двоичном сдвиге в более младшую тетраду добавляется число 8 (вес старшего разряда тетрады). Поэтому требуется коррекция результата, которая заключается в вычитании числа 3 из содержимого тех тетрад, которые после сдвига вправо имеют установленные старшие разряды.

4. Преобразование чисел с плавающей точкой в двоично-десятичные числа

Представление чисел с плавающей точкой имеет следующий вид:

где М — двоичная мантисса числа, П — двоичный порядок числа.

Такое представление часто используется и в десятичной системе счисления для представления очень больших или очень малых чисел. Мантисса и порядок представляют собой целые знаковые числа. Знак мантиссы является знаком всего числа. Порядок показывает истинное положение точки вместо того, которое она занимает в изображении мантиссы. Двоичное число с плавающей точкой отличается от привычного нам десятичного тем, что точка является двоичной, то есть порядок показывает на количество двоичных (а не десятичных) разрядов, на которое необходимо переместить эту точку влево или вправо.

Нормализованным представлением числа с плавающей точкой называют такое представление, когда мантисса является правильной дробью, и старшая ее цифра отличается от нуля. Но для двоичного числа требование того, что старшая цифра отличается от нуля означает, что эта цифра равна 1. Если старшая цифра точно известна, то ее можно не хранить в памяти.

Источник

Читайте также:  Иммиграция телепорт на другой сервер