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

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

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

Определение 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$ байт для преставления каждых двух десятичных цифр, можно формировать двоично-десятичные числа с любым требуемым числом десятичных разрядов.

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

Что это значит?

Начнем с определения основного понятия. Как отмечает учебник "Информатика", система счисления - записи чисел, в которой используется специальный алфавит или определенный набор цифр.

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

В позиционных системах значение цифры меняется вместе с ее положением в числе. Так, если взять число 234, то цифра 4 в ней означает единицы, если же рассмотреть число 243, то тут она будет уже означать десятки, а не единицы.

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

Непозиционные системы

К непозиционным системам счисления относятся:

  1. Единичная система, которая считается одной из первых. В ней вместо цифр использовались палочки. Чем их было больше, тем больше было значение числа. Встретить пример чисел, записанных таким образом, можно в фильмах, где речь идет о потерянных в море людях, заключенных, которые отмечают каждый день с помощью зарубок на камне или дереве.
  2. Римская, в которой вместо цифр использовались латинские буквы. Используя их, можно записать любое число. При этом его значение определялось с помощью суммы и разницы цифр, из которых состояло число. Если слева от цифры находилось меньшее число, то левая цифра вычиталась из правой, а если справа цифра была меньше или равна цифре слева, то их значения суммировались. Например, число 11 записывалось как XI, а 9 - IX.
  3. Буквенные, в которых числа обозначались с помощью алфавита того или иного языка. Одной из них считается славянская система, в которой ряд букв имел не только фонетическое, но и числовое значение.
  4. в которой использовалось всего два обозначения для записи - клинья и стрелочки.
  5. В Египте тоже использовались специальные символы для обозначения чисел. При записи числа каждый символ мог использоваться не более девяти раз.

Позиционные системы

Большое внимание уделяется в информатике позиционным системам счисления. К ним относятся следующие:

  • двоичная;
  • восьмеричная;
  • десятичная;
  • шестнадцатеричная;
  • шестидесятеричная, используемая при счете времени (к примеру, в минуте - 60 секунд, в часе - 60 минут).

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

Десятичная система

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

Двоичная система

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

Для записи чисел используется лишь две цифры - 0 и 1. При этом, в зависимости от положения 0 или 1 в числе, его значение будет меняться.

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

Восьмеричная система

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

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

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

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

Шестнадцатеричная система

В последнее время все большую популярность приобретает в программировании и информатике система счисления шестнадцатеричная. В ней используются не только цифры от 0 до 9, но и ряд латинских букв - A, B, C, D, E, F.

При этом, каждая из букв имеет свое значение, так A=10, B=11, C=12 и так далее. Каждое число представляется в виде набора из четырех знаков: 001F.

Перевод чисел: из десятичной в двоичную

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

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

Например, переведем число 9 в двоичную систему:

Делим 9, так как число не делится нацело, то берем число 8, остаток будет 9 - 1 = 1.

После деления 8 на 2 получаем 4. Снова делим его, так как число делится нацело - получаем в остатке 4 - 4 = 0.

Проводим ту же операцию с 2. В остатке получаем 0.

В итоге деления у нас получается 1.

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

Перевод чисел: из двоичной в десятичную

Довольно легко переводить числа и в десятичную систему счисления из двоичной. Для этого достаточно знать правила возведения чисел в степень. В данном случае, в степень двойки.

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

Для школьников этот алгоритм можно объяснить проще:

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

Для примера разберем с вами полученное ранее число 1001, переведя его в десятичную систему, и заодно проверим правильность наших вычислений.

Выглядеть это будет следующим образом:

1*2 3 + 0*2 2 +0*2 1 +1*2 0 = 8+0+0+1 =9.

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

Другие варианты перевода

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

Арифметические операции

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

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

Заучивать их необязательно - достаточно просто распечатать и иметь под рукой. Также можно воспользоваться калькулятором на ПК.

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


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

Двоично-десятичная система не экономична с точки зрения реализации технического построения машины (примерно на 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

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

925 10 = 1001 0010 0101 2-10 .

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

Хотя в двоично-десятичной записи используются только цифры 0 и 1, эта запись отличается от двоичного изображения данного числа. Например, двоичный код 1001 0010 0101 соответствует десятичному числу 2341, а не 925.

В случае если P=Q l (l – целое положительное число), запись любого числа в смешанной системе счисления тождественно совпадает с изображением этого числа в системе счисления с основанием Q. Примерами такой смешанной системы счисления являются двоично-восьмеричная и двоично-шестнадцатеричная.

Например,

A2 16 = 1010 0010 2 = 1010 0010 2-16

ПРЕДСТАВЛЕНИЕ ОТРИЦАТЕЛЬНЫХ ЧИСЕЛ В ФОРМАТЕ С ФИКСИРОВАННОЙ ЗАПЯТОЙ (ТОЧКОЙ)

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

Известно, что одним из способов выполнения операции вычитания является замена знака вычитаемого на противоположный и прибавление его к уменьшаемому:

А - В = А + (- В)

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

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

[A] пр = 0.an an-1 an-2.....a1 a0,

тогда число -А в этом же коде представляется как

[-A]пр = 1.an an-1 an-2.....a1 a0,

а в обратном (инверсном) коде это число будет иметь вид:

[-A]об = 1.an an-1 an-2.....a1 a0,

ai = 1, если ai = 0,

ai = 0, если ai = 1,

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

Тогда число -A в дополнительном коде изображается в виде

[-A]доп = [-A]об + 1

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

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

Представим, что мы имеем только два разряда для представления чисел в десятичной системе счисления. Тогда максимальное число, которое можно изобразить будет 99, а вес третьего несуществующего старшего разряда будет 10 2 , т.е. 100. В таком случае для числа 20 дополнительным будет число 80, которое дополняет 20 до 100 (100 - 20 = 80). Следовательно по определению вычитание

можно заменить на сложение:

Здесь старшая единица выходит за пределы выделенной разрядной сетки, в которой остается только число 30, т.е. результат вычитания из 50 числа 20.

А теперь рассмотрим похожий пример для чисел, представленных 4-х разрядным двоичным кодом. Найдем дополнительное число для 0010 2 = 210. Надо из 0000 вычесть 0010, получим 1110, которое и является дополнительным кодом 2. Разряд, изображенный в квадратных скобках на самом деле не существует. Но так как у нас 4-х разрядная сетка, то выполнить такое вычитание в принципе невозможно, а тем более мы стараемся избавиться от вычитания. Поэтому дополнительный код числа получают способом, описанным ранее, т.е. сначала получают обратный код числа, а затем прибавляют к нему 1. Проделав все это с нашим числом (2), нетрудно убедиться, что получится аналогичный ответ.

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

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

Рассмотрим простые примеры.

Семерка в прямом коде представляется так:

пр = 0.0001112

Число -7 в прямом коде:

[-7]пр = 1.0001112,

а в обратном коде будет иметь вид

[-7]об = 1.1110002,

т.е. единицы заменяются нулями, а нули единицами. То же число в дополнительном коде будет:

[-7]доп = 1.1110012.

Рассмотрим еще раз как процедура вычитания, при помощи представления вычитаемого в дополнительном коде, сводится к процедуре сложения. Вычтем из 10 число 7: 10 - 7 = 3. Если оба операнда представлены в прямом коде, то процедура вычитания выполняется так:

-1.000111

А если вычитаемое, т.е. -7, представить в дополнительном коде, то процедура вычитания сводится к процедуре сложения:

+ 1.111001

1 0.000011 = 310.

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

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

Машинное (автоматное) изображение числа это есть представление числа в разрядной сетке цифрового автомата . Условное обозначение машинного изображения числа, например, A будем представлять как [A] .

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

В повседневной практике наиболее распространенной является форма представления чисел в виде последовательности цифр, разделенной запятой на целую и дробную части. Числа, представленные в такой форме, называются числами с естественной запятой или числами в естественной форме . В естественной форме число записывается в естественном натуральном виде, например 12560 - целое число, 0,003572 - правильная дробь, 4,89760 - неправильная дробь.

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

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

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

В знаковую часть записывается информация о знаке числа. Принято, что знак положительного числа "+" изображается символом 0, а знак отрицательного числа "-" изображается символом 1.

Например, в двоичном коде, используя 6-разрядную сетку, число 7 в форме с фиксированной запятой можно представить в виде:

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

В дальнейшем часто будет использоваться в примерах такой вид представления числа в машинной форме. Можно использовать и другую форму представления числа в машинной форме:

где знаковый разряд выделяется квадратными скобками.

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

|A|max = (2 (n -1) - 1),

где n - полная длина разрядной сетки. В случае 16-разрядной сетки

|A| max = (2 (16-1) - 1) = 32767 10 ,

т.е. диапазон представления целых чисел в этом случае будет от +3276710 до -3276710 .

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

(2 (n-1) - 1) и меньше единицы не представляются в форме с фиксированной запятой. Числа, по абсолютной величине меньше единицы младшего разряда разрядной сетки, называются в этом случае машинным нулем.Отрицательный ноль запрещен.

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