Чем отличается двоичная система от десятичной. Двоично-кодированная десятичная система счисления (D-коды)

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

Двоично-десятичная система не экономична с точки зрения реализации технического построения машины (примерно на 20 % увеличивается потребное оборудование), но очень удобна при подготовке задач и при программировании. В двоично-десятичной системе счисления основанием системы счисления является число десять, но каждая из 10 десятичных цифр (0, 1, ..., 9) изображается при помощи двоичных цифр, то есть кодируется двоичными цифрами. Для представления одной десятичной цифры используются четыре двоичных. Здесь имеется, конечно, избыточность, поскольку четыре двоичных цифры (или двоичная тетрада) могут изобразить не 10, а 16 чисел, но это уже издержки производства в угоду удобства программирования. Существует целый ряд двоично-кодированных десятичных систем представления чисел, отличающихся тем, что определенным сочетаниям нулей и единиц внутри одной тетрады поставлены в соответствие те или иные значения десятичных цифр 1 .

В наиболее часто используемой естественной двоично-кодированной десятичной системе счисления веса двоичных разрядов внутри тетрады естественны, то есть 8, 4, 2, 1 (табл. 3.1).

Таблица 3.1. Таблица двоичных кодов десятичных и шестнадцатеричных цифр

Цифра Код Цифра Код
A
B
C
D
E
F

Например, десятичное число 9703 в двоично-десятичной системе выглядит так: 1001011100000011.

18 вопрос. ос. Логические основы работы ЭВМ. Операции алгебры логики

Алгебра логики предусматривает множество логических операций. Однако три из них заслуживают особого внимания, т.к. с их помощью можно описать все остальные, и, следовательно, использовать меньше разнообразных устройств при конструировании схем. Такими операциями являются конъюнкция (И), дизъюнкция (ИЛИ) и отрицание (НЕ). Часто конъюнкцию обозначают & , дизъюнкцию - || , а отрицание - чертой над переменной, обозначающей высказывание.

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

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

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

19 вопрос. Основные правила алгебры логики

Обычная запись этих законов в формальной логике:

20 вопрос. Таблица истинности

Таблицы истинности

Логические операции удобно описывать так называемыми таблицами истинности , в которых отражают результаты вычислений сложных высказываний при различных значениях исходных простых высказываний. Простые высказывания обозначаются переменными (например, A и B).

21 Вопрос. Логические элементы. Их названия и обозначения на схема

Как же использовать полученные нами знания из области математической логики для конструирования электронных устройств? Нам известно, что О и 1 в логике не просто цифры, а обозначение состояний какого-то предмета нашего мира, условно называемых "ложь" и "истина". Таким предметом, имеющим два фиксированных состояния, может быть электрический ток. Устройства, фиксирующие два устойчивых состояния, называются бистабильными (например, выключатель, реле). Если вы помните, первые вычислительные машины были релейными. Позднее были созданы новые устройства управления электричеством - электронные схемы , состоящие из набора полупроводниковых элементов. Такие электронные схемы, которые преобразовывают сигналы только двух фиксированных напряжений электрического тока (бистабильные) , стали называть логическими элементами.

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

Логическими элементами компьютеров являются электронные схемы И, ИЛИ, НЕ, И-НЕ, ИЛИ-НЕ и другие (называемые также вентилями ), а также триггер.

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

Чтобы представить два логических состояния - “1” и “0” в вентилях, соответствующие им входные и выходные сигналы имеют один из двух установленных уровней напряжения. Например, +5 вольт и 0 вольт.

Высокий уровень обычно соответствует значению “истина” (“1”), а низкий - значению “ложь” (“0”).

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

Работу логических элементов описывают с помощью таблиц истинности.

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


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

Двоично-десятичная система не экономична с точки зрения реализации технического построения машины (примерно на 20 % увеличивается требуемое оборудование), но очень удобна при подготовке задач и при программировании. В двоично-десятичной системе счисления основанием системы счисления является число 10, но каждая десятичная цифра (0, 1, ..., 9) изображается, то есть кодируется, двоичными цифрами. Для представления одной десятичной цифры используются четыре двоичных. Здесь, конечно, имеется избыточность, поскольку 4 двоичных цифры (или двоичная тетрада) могут изобразить не 10, а 16 чисел, но это уже издержки производства в угоду удобству программирования. Существует целый ряд двоично-кодированных десятичных систем представления чисел, отличающихся тем, что определенным сочетаниям нулей и единиц внутри одной тетрады поставлены в соответствие те или иные значения десятичных цифр. В наиболее часто используемой естественной двоично-кодированной десятичной системе счисления веса двоичных разрядов внутри тетрады естественны, то есть 8, 4, 2, 1 (табл. 6).

Таблица 6

Двоично-десятичная счисления

Например, десятичное число 5673 в двоично-десятичном представлении имеет вид 01010110011100011.

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

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

При переводе удобно пользоваться таблицей степеней двойки:

Таблица 7.

Степени числа 2

n (степень)

Пример. Число перевести в десятичную систему счисления.

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

При переводе удобно пользоваться таблицей степеней восьмерки:

Таблица 8.

Степени числа 8

n (степень)
8 n

Пример. Число 75013 8 перевести в десятичную систему счисления.

(Методическая разработка)

Задание: Преобразовать числа, выраженные в десятичной форме, в двоичную форму, затем произвести умножение.

Примечание: Правила умножения точно такие же, как и в десятичной системе счисления.

Умножить: 5 × 5 = 25

Преобразуем десятичное число 5 в двоичный код

5: 2 = 2 остаток 1 Полученный результат

2: 2 = 1 остаток 0 записываем в обратном

1: 2 = 0 остаток 1 порядке

Таким образом: 5 (10) = 101 (2)

Преобразуем десятичное число 25 в двоичный код

25: 2 = 12 остаток 1

12: 2 = 6 остаток 0 Полученный результат

6: 2 = 3 остаток 0 записываем в обратном

3: 2 = 1 остаток 1 порядке

1: 2 = 0 остаток 1

Таким образом: 11001 (2) = 25 (10)

Производим проверку:

Производим двоичное умножение

×
101
+
101

Правила умножения в двоичной системе точно такие же, как и в десятичной системе счисления.

1) 1 × 1, будет 1, записываем 1.

2) 1 × 0, будет 0, записываем 0.

3) 1 × 1, будет 1, записываем 1.

4) Записываем три нуля, причем первый ноль под вторым знаком (нулем).

5) Умножение 1 × 101 точно такое же, как и п.п. 1, 2, 3.

Производим операцию сложения.

6) Сносим и записываем 1.

7) 0 +0 будет ноль, записываем 0.

8) 1 + 1 будет 10, записываем ноль, а единицу переносим в старший разряд.

9) 0 + 0 + 1 будет 1, записываем 1

10) Сносим и записываем 1.

Задание 1: Выполнить умножение в двоичной форме

Задание: Преобразовать числа, выражение в десятичной форме, в двоичную форму, затем произвести деление.

Примечание: Правила деления точно такие – же, как и в десятичной системе счисления.

Если результат делится без остатка, записываем – 0, иначе (с остатком) – 1

Разделить: 10:2 = 5

Преобразуем десятичное число 10 в двоичный код:

10:2 = 5 остаток 0 5:2 = 2 остаток 1 2:2 = 1 остаток 0 1:2 = 0 остаток 1

Полученный результат

записываем в обратном

Таким образом: 1010 (2) = 10 (10)

Преобразуем десятичное 2 в двоичный код

2:2 = 1 остаток 0

1:2 = 0 остаток 1



Таким образом: 10 (2) = 2 (10)

Преобразуем десятичное 5 в двоичное код

5:2 = 2 остаток 1

2:2 = 1 остаток 0

1:2 = 0 остаток 1

Таким образом: 101 (2) = 5 (10)

Производим проверку:

1010 (2) = 0×2 0 + 1×2 1 + 0×2 2 + 1×2 3 = 0 +2+0+8 =10 (10)

10 (2) = 0×2 0 +1×2 1 = 0 +2 = 2 (10)

101 (2) = 1×2 0 +0×2 1 +1×2 2 = 1+ 0+4 = 5 (10)

Производим двоичное деление:

1010 (2) : 10 (2) = 101 (2)

1010 (2) 10
10

Правила деления в двоичной системе точно такие же, как и в десятичной.

1) 10 разделить на 10. Берём по 1, в результат записываем 1.

2) Сносим 1 (единицу), не хватает, занимаем 0 (ноль).

3) Берём по 1. Из 10 (десяти) вычесть 10 получается ноль, что и соответствует
действительности.

Задание 1: Выполнить деление в двоичной форме

1) 10010 (2) : 110 (2) =

11000 (2) : 110 (2) =

2) 110110 (2) : 110 (2) =

Задание 2: Полученный результат восстановить в десятичной форме.

Задание: Вычесть числа, выраженные в двоичной форме, полученный результат восстановить в десятичную форму.

Вычесть: 1100 (2) – 110 (2) =

Правила вычитания в двоичной форме.

Вычитание в двоичной форме подобно вычитанию в десятичной системе.

110 0 + 0 = 0

110 0 + 1 = 1

1) 0 плюс 0 равно 0 (См. правила сложения чисел).

2) 1 плюс 1 равно 10. Записываем ноль, а единицу переносим в старший разряд, как и в десятичной системе

3) 1 плюс 1 плюс 1 равно 11 – двоичное число. Записываем 1, а вторую единицу
переносим в старший разряд. Получаем: 1100 (2) , что и соответствует действительности.

Задание: Произвести проверку полученного результата.

1100 (2) = 0×2 0 + 0×2 1 +1×2 2 +1×2 3 = 0 + 0 + 4 + 8 = 12 (10)

110 (2) = 0×2 0 +1×2 1 +1×2 2 = 0 + 2 + 4 = 6 (10)

Таким образом, получаем: 6 + 6 = 12, что соответствует действительности.

Выполнить самостоятельно:

Задание 1. Выполнить вычитание в двоичной форме:

+
1010 10 (10)

110 6 (10)

10000 соответствует: 16 (10)

Выполнение действий происходит следующим образом.

1) 0 плюс 0 равно О

2) 1 плюс 1 равно 10 (что 2 (два) в двоичной системе представляется как 10);
Исторически сложилось, что для сложения чисел использовалось десять пальцев и наоборот:

9 + 1 = 10; 8 + 2 = 10; 1 + 9 = 10; 2 + 8 = 10.

Поэтому и произошла десятичная система счисления. А в двоичной 2 (два) знака: 1 и 0

3) 1 плюс 0 плюс 1 равно 10. Записываем 0 и переносим 1.

4) 1 плюс 1 равно 10, поскольку это последнее действие, записываем 10, точно также сделали это в десятичной системе.

Задание: Произвести проверку полученного результата:

110

Понятие смешанной системы счисления

Среди систем счисления выделяют класс так называемых смешанных систем счисления .

Определение 1

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

При этом в такой системе счисления во избежание разночтения для изображения каждой цифры системы с основанием $P$ отводится одинаковое количество разрядов системы с основанием $Q$, достаточное для представления любой цифры системы с основанием $P$.

Примером смешанной системы счисления является двоично-десятичная система.

Практическое обоснование использования двоично-десятичной системы счисления

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

Замечание 1

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

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

    считывает результаты преобразования АЦП;

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

Однако окончательный результат при этом выводится на индикатор в десятичном формате, удобном для восприятия человеком.

Принципы построения двоично-десятичной системы счисления

При построении двоично-десятичной системы счисления для изображения каждой десятичной цифры в ней отводится $4$ двоичных разряда, поскольку максимальная десятичная цифра $9$ кодируется как $10012$.

Например: $925_{10} = 1001 0010 0101_{2-10}$.

Рисунок 1.

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

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

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

Например:

$1001 0010 0101_{(2)} = 2341_{(10)}$,

$1001 0010 0101_{(2)} = 925_{(2-10)}$.

Такая запись довольно часто используется как промежуточный этап при переводе числа из десятичной системы в двоичную и обратно. Так как число $10$ не является точной степенью числа $2$, то используются не все $16$ тетрад (тетрады, изображающие числа от $A$ до $F$ отбрасываются, так как эти числа считаются запрещенными), алгоритмы же арифметических операций над многозначными числами в этом случае более сложные, чем в основных системах счисления. И, тем не менее, двоично-десятичная система счисления используется даже на этом уровне во многих микрокалькуляторах и некоторых компьютерах.

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

Например: $75+18=93$.

$10001101 \ (8D)$

В младшей тетраде появилась запрещенная цифра $D$. Прибавим к младшей тетраде $6$ и получим:

$10010011 \ (93)$

Как видим, несмотря на то, что сложение осуществлялось в двоичной системе счисления результат операции получился в двоично-десятичной.

Замечание 2

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

Преимущества использования двоично-десятичной системы счисления

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

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

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

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

Двоично-десятичный код Десятичный код
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9

Остальные комбинации двоичного кода в тетраде являются запрещенными. Запишем пример двоично-десятичного кода:

1258 = 0001 0010 0101 1000

В первой тетраде записана цифра 1, во второй — 2, в третьей — 5, а в последней тетраде записана цифра 8. В данном примере для записи числа 1258 потребовалось четыре тетрады. Количество ячеек памяти микропроцессора зависит от его разрядности. При 16-разрядном процессоре все число уместится в одну ячейку памяти.

589 = 0000 0101 1000 1001

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

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

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

1258 =00000001 00000010 00000101 00001000

В первой строке записана цифра 1, во второй - 2, в третьей - 5, а в последней строке записана цифра 8. В данном примере для записи числа 1258 потребовалось четыре строки (ячейки памяти)

589 = 00000000 00000101 00001000 00001001

Суммирование двоично-десятичных чисел.

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

Понравилось? Лайкни нас на Facebook