Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по микропроцессорам Щеглов.DOC
Скачиваний:
22
Добавлен:
17.09.2019
Размер:
8.33 Mб
Скачать

Пример 1.1.

а) сложение

б) вычитание

в) деление

г) умножение

1.1.2. Двоично-кодированные системы счисления.

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

, (1.3)

откуда

, (1.4)

где ]x[ обозначает ближайшее к х большее целое.

Легко сообразить, что количество k-разрядное двоичных чисел, не используемых в качестве кодов р-ичных цифр, равно 2к-р. Эти числа обычно называют “запрещенными комбинациями” (нулей и единиц).

Пример 1.2.

Десятичная двоично-кодированная система счисления, в которой каждая десятичная цифра заменена четырехразрядным равным ей двоичным числом, называется двоично-десятичной. Каждой цифре ставится в соответствие четырехразрядной двоичный код: - тетрада

Перечислим цифры и соответствующие им тетрады:

0→0000, 1→0001, 2→0010, 3→0011, 4→0100, 5→0101, 6→0110, 7→0111, 8→1000, 9→1001.

Количество запрещенных комбинаций равно 24 – 10 = 6 (вот они: 1010, 1011, 1100, 1101, 1110, 1111). При таком выборе кодов тетрад двоично-десятичных чисел говорят о ВСD - представлении десятичных чисел (ВСD – binary-coded decimal).

Десятичное число 8932 изобразится в двоично-десятичной системе следующим образом:

1000 1001 0011 0010.

В машинах, в которых принята двоичная система счисления, двоично-десятичная запись чисел применяется для ввода чисел в машину и для вывода чисел из машины. Кроме того, многие ЭВМ поддерживают арифметику над двоично-десятичными числами (десятичная арифметика).

1.2. Преобразование из одной системы счисления в другую.

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

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

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

Деление на р (при помощи арифметических действий над величинами с позиционным представлением по основанию q (арифметика основания q). Дано целое число u. Его представление (UmUm-1… U1 U0)р по основанию р получаем следующим образом:

U0=U mod p,

U1=[U/p] mod p,

U2=[ [U/p] / p] mod p, и т.д., пока не получим […[ [U/p] / p]…/p]=0.

Здесь: [х] – ближайшее к х меньшее целое. U mod p – остаток от деления U на p.

Пример 1.3.

Перевести (108)10 в двоичную систему счисления:

Итак (108)10 = (1101100)2

Пример 1.4.

Перевести (108)10 в шестнадцатеричную систему счисления.

Итак, (108)10 = (6С)16

Метод умножения.

Умножение на q (при помощи арифметики основания р). Если представление числа u по основанию q имеет вид (UnUn-1… U1 U0)q, то мы можем, воспользовавшись арифметикой основания р, вычислить многочлен

Unqn + Un-1qn-1+… U1q +U0 =u

в виде:

((…(Unq+ Un-1)q+…)q+ U1)q+ U0

Пример 1.5.

Преобразовать (1101100)2 в десятичную систему счисления

Пример 1.6.

Преобразовать (6С)16 в десятичную систему счисления

Метод деления используется при переходе из “родной” системы счисления в “чужую”, а метод умножения при переходе из “чужой” в “родную” систему счисления.

1.2.2. Преобразование дробей.

Заметим, что часто бывает невозможно точно выразить конечную дробь (0,U-1U-2 U-n ) с основанием q как конечную дробь (0,U-1U-2 U-m ) с основанием р. Например, дробь 1/10 имеет бесконечное двоичное представление (0, 0 0011 0011 0011 …)2 .

Поэтому определенный интерес представляют методы округления результата до m знаков.

Метод умножения.

Умножение на р (при помощи арифметики основания q). Дано дробное число u; мы получаем последовательные цифры его представления ( .U-1U-2 )p по основанию р следующим образом:

U-1 =[uP],

U-2=[{uP}P],

U-3=[{{uP}P}P],

где {х} дробная часть х: х mod 1 = х – [х].

Процесс умножения продолжается до тех пор, пока не будет получена дробная часть, равная нулю, в противном случае результат округляется до m знаков, причем, если {…{{up}p}…p} больше 1/2, то U-m следует увеличить на единицу.