Главная » Настройки » Двоичная арифметика деление примеры. Двоичные числа и двоичная арифметика. Прямой, обратный и дополнительный коды

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

роизвольное натуральное число можно единственным способом представить в виде суммы степеней двойки, например 23 = 16+4+2+1. Обозначая входящие в эту сумму степени двойки единицами, а не входящие в ее степени нулями, можно кратко обозначить эту сумму булевым набором (в другой терминологии - вектором) (10111) 2 . Индекс 2 напоминает о том, что число записано в двоичной системе. Единица, стоящая в младшем (самом левом) разряде, означает слагаемое 1, единица во втором слева разряде означает слагаемое 2, единица в третьем разряде означает 4, а нуль в четвертом разряде означает отсутствие слагаемого 8, единица в четвертом (старшем) разряде означает присутствие слагаемого 16 (в большинстве случаев разумно рассматривать только такие записи чисел в двоичной системе, в которых в старшем разряде стоит единица).

Главное достоинство двоичной системы (помимо естественности ее применения в электронной цифровой технике) - исключительная простота алгоритмов арифметических операций в ней. Таблица умножения в двоичной системе совсем не требует запоминания: любое число, умноженное на нуль дает нуль, а умноженное на единицу равно самому себе. Правило деления сводится к двум равенствам 0/1 = 0, 1/1 =1, благодаря чему деление столбиком в двоичной системе делается проще, чем в десятичной, и по существу сводится к многократному вычитанию. Таблица сложения в двоичной системе чуть сложнее таблицы умножения (в отличие от десятичной системы), так как 1+1 = (10) 2 и возникает перенос в следующий разряд.

Правило сложения двух битов в двоичной системе задается формулами x+y = 2v+u, v = x&y, u = xÅy. В силу симметрии для их проверки достаточно рассмотреть не четыре, а три случая: 0+0 = (00) 2 , 1+0=0+1= (01) 2 , 1+1 = (10) 2 . Схема, выполняющая это сложение, называется полусумматором (в англоязычной литературе: half adder) и обозначается обычно HA или FA2. Эта схема (в базисе {AND, XOR}) изображена на рисунке.

Схемы для арифметических операций над многоразрядными двоичными числами. Сложение двух n-разрядных двоичных чисел (x n ,….,x 1) 2 и (y n ,….,y 1) 2 как и в десятичной системе приводит к появлению переносов в следующий разряд, которые необходимо учитывать в вычислении. Эти переносы также равны нулю или единице (если перенос равен нулю, то в ручном вычислении он фактически не выполняется, но логическая схема обязана правильно работать и в этом случае, ведь она «не знает», какой перенос пришел из предыдущего разряда). Обозначим перенос из (i-1)-го разряда в следующий i-й разряд через w i (w 1 =0, потому что предыдущего разряда в этом случае просто нет). Тогда для вычисления z i (i-го бита результата) нужно сложить биты x i и y i и бит переноса w i . Это сложение выполняем по формулам

x i + y i +w i = 2v i +u i , v i =m(x i ,y i ,w i), u i =l(x i ,y i ,w i)

с помощью схемы FA3. Тогда z i =u i =l(x i ,y i ,w i), а следующий бит переноса w i +1 = v i =m(x i ,y i ,w i). При сложении n-разрядных чисел получается вообще говоря n+1-разрядное число. Его старший бит z n +1 = w n +1 равен последнему переносу.

Схема сложения трехразрядных чисел приведена на следующем рисунке. Аналогичным образом выглядит и схема сложения n-разрядных чисел.

Сложность указанного n-разрядного сумматора равна 5n-3. Н.П.Редькин доказал, что сумматоров для n-разрядных чисел меньшей сложности в базисе {AND,OR,XOR,NOT} не существует. Построенный сумматор является поэтому минимальной схемой. Но у этой схемы есть существенный недостаток - она имеет большую глубину. Глубиной схемы называется максимальное число ее элементов, образующих цепь, соединяющую какой-либо из входов схемы с одним из ее выходов. Например, глубина указанной выше схемы FA3 равна 3.

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

Теоретически вычислить задержку реальной схемы очень сложно. Цепей элементов схемы, соединяющих ее входы с выходами (эти цепи также называют путями), обычно довольно много и задержка схемы определяется задержкой по самому плохому в определенном смысле пути, который называется критическим. Например, на схеме FA3 критический путь, вероятно, соединяет входы X или Y с выходом m. Задержка по любому пути определяется не только суммой задержек всех элементов, лежащих на этом пути (в приведенном примере она равна 3, если считать задержку каждого элемента единичной). Следует учитывать также задержку соединяющих эти элементы проводов. Задержка элемента зависит от того, между каким его входом и каким его выходом она измеряется, а также от электрических характеристик самого элемента и элементов непосредственно с ним связанных в рассматриваемой схеме, она зависит от температуры схемы и даже от того, какие логические значения подаются в рассматриваемый момент на входы этого элемента и изменяется ли (и в какую сторону) значение на его выходе. Тем не менее, хотя и не очень точно, задержку пути можно оценить как сумму задержек его элементов. Если задержки всех элементов равны, то эта величина определяется глубиной схемы. Разумеется, понятие глубины схемы можно расширить, допустив, что элементы базиса могут иметь произвольные неотрицательные задержки.

Глубина указанной выше схемы n-разрядного сумматора на первый взгляд равна 3n-2. Но внимательный анализ возможных критических путей показывает, что она на самом деле равна 2n-1. Все равно это очень много и построенная таким образом реальная схема будет иметь большую задержку. На практике используются схемы, имеющие одновременно малую сложность, не превосходящую Cn (где С - небольшая константа) и малую глубину, приблизительно равную 2log 2 n. В.М. Храпченко в 1970 г. построил схему малой сложности и глубины, асимптотически равной log 2 n (т.е. равную (1+ e(n)) log 2 n, где e(n) стремится к нулю с ростом n). Он же недавно доказал, что глубина сумматора не может быть меньше log 2 n + log 2 n (log 2 (log 2 n))). Поэтому построенная им схема имеет асимптотически минимальную глубину. Однако схема Храпченко превосходит обычные схемы только при n порядка тысячи. Тем не менее существует некоторая модификация его схемы с глубиной приблизительно равной log j n, где j = (Ö5+1)/2, и эта схема имеет глубину меньшую, чем стандартные схемы, уже начиная с n = 8. В 2008 г. М.И.Гринчук построил схему глубины не большей log 2 n+log 2 (log 2 n)+6, которая уже при малых n имеет меньшую глубину, чем все известные схемы.

Задача построения оптимальных схем для умножения n-разрядных чисел оказалась еще труднее, чем задача о построении оптимальных сумматоров. Легко построить схему для умножения n-разрядных чисел в базисе {OR,AND,XOR,NOT} сложности приблизительно равной 6n 2 . Для этого можно использовать указанную выше схему для сумматора. Однако ее глубина будет велика. В начале 60-х годов несколько исследователей (в СССР Столяров и Офман, в США Авиценис и Уоллес) независимо построили схему для умножения сложности порядка n 2 и глубины порядка log 2 n. В смысле глубины эти схемы по порядку оптимальны, но до сих пор остается нерешенной задача построения схемы для умножения асимптотически минимальной глубины. В смысле сложности эти схемы оказались далеки от оптимальных. А. А. Карацуба построил в 1962 г. схему для умножения, имеющую сложность по порядку не большую n 1,6 , потом А. Л. Тоом построил схему сложности n 1+ e(n) , где e(n) стремится к нулю с ростом n. В определенном смысле этот результат окончательный, тем не менее он был уточнен на рубеже 70-х годов немецкими математиками А. Шенхаге и Ф. Штрассеном, которые получили для схем умножения верхнюю оценку сложности по порядку не превосходящую n log 2 n log 2 (log 2 n), а в 2008 г. эту оценку улучшил американский математик М. Фюрер, заменивший двойной логарифм крайне медленно растущей функцией. Есть предположение, что сложность схемы умножения по порядку не меньше n log 2 n, но и это не доказано.

Американский математик С.Кук доказал, что можно построить схему для деления 2n-разрядного числа на n-разрядное, у которой сложность по порядку не превосходит сложности умножения n-разрядных чисел. Известно также, что нижняя оценка сложности схемы для деления по порядку не меньше нижней оценки сложности умножения. Поэтому в смысле оценок сложности деление не представляет ничего нового в сравнении с умножением. Однако долгое время наилучшей оценкой глубины деления по порядку было (log 2 n) 2 .

Впоследствии были найдены схемы для деления с глубиной по порядку равной log 2 n, но их сложность оказалась велика. Американцы Рейф и Тейт построили схемы для деления глубины по порядку не превосходящей log 2 n log 2 (log 2 n) и одновременно сложности по порядку не превосходящей n log 2 n log 2 log 2 n, однако и эти схемы, как и схемы Шенхаге-Штрассена и Фюрера пока не нашли практических применений, так как в действительности начинают превосходить используемые на практике схемы лишь при огромных значениях n.

Рекомендуемая литература

  1. О.Б. Лупанов « Асимптотические оценки сложности управляющих систем » изд. МГУ, 1984.
  2. О.Б. Лупанов «Конспект лекций по математической логике »изд. МГУ, 2009.
  3. Дж. Сэвидж «Сложность вычислений » М. изд. Факториал, 1998.
  4. Д. Кнут « Искусство программирования на компьютере», т. 2, изд. Вильямс, 2000.
  5. С.Б. Гашков «Системы счисления и их применения », М. изд. МЦНМО, 2004.
  6. С.Б. Гашков, В.Н. Чубариков «Арифметика. Алгоритмы. Сложность вычислений », изд. Дрофа, 2005.

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

Правила двоичной арифметики

Сложение и вычитание двоичных чисел основаны на правилах этих действий в пределах одного разряда и правилах учета межразрядных переносов и займов.

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

Таблица 3.1

Правила арифметических операций

Перенос, возникающий в i -м разряде, передается в следующий (i +1)-разряд с увеличенным вдвое весом и уменьшенным вдвое значением.

Заем из (i +1)-го разряда передается в i-й разряд с уменьшенным вдвое весом и увеличенным вдвое значением.

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

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

единица из разряда с весом 2 4 была занята в разряд с весом 2 3 ; эта единица стала там двойкой, и в разряде с весом 2 3 выполнилось вычитание 10-1 = 1; на месте разряда с весом 2 4 в уменьшаемом фактически остался нуль.

Распространение займа сразу на несколько более старших разрядов можно проследить на примере вычитания чисел 101110,001 (2) и 101,011 (2) . Записав числа друг под другом:

нетрудно заметить, что в разряде с весом 2 -2 в результате вычитания должен произойти заем из разряда с весом 2 1 . Перепишем пример с учетом фактического расположения цифр после заема и выполним вычитание. Вместо зачеркнутых цифр необходимо использовать в качестве уменьшаемого надписанные цифры. Окончательный результат (разность) составляет 101000,110 (2) .

Пример . Уменьшаемое 1000000 (2) , вычитаемое 1 (2) , разность составляет

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

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

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

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

Цель :

    учащиеся познакомятся с двоичной системой счисления, укажут ее недостатки и преимущества использования в вычислительной технике;

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

    воспитают в себе умение самостоятельно добывать новые знания.

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

Способы работы: Индивидуальная, парная, групповая

Критерии оценки:

Ответы на вопросы 1-3 балла

Запись конспекта 1-2 балла

Выполнение заданий - 1-4 балла

Активность работы в группе – 1 балл

Мониторинг оценивания:

1-3 балла – «3»

4-6 баллов – «4»

7-10 баллов – «5»

Этапы урока

Время

Деятельность учителя

Деятельность ученика

Оценивание

Ожидаемый результат

Побуждение

Приветствие

Проверка явки учащихся

Позитивный настрой

Деление на группы: «Фрукты»

Организация работы по определению темы и цели урока

Организация деятельности по созданию критериев оценки работы

Проверка кластеров «Количество информации»

Проверка домашнего задания:

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

а) 10111110001

б) 1001101011001

в) 100100101011

Приветствие

Позитивно настраиваются на урок

Делятся на группы

Определяют тему и цели урока

Создают критериии оценки работы

Показывают выполнение домашнего задания

Смайлики

Позитивно настроятся на урок

Осуществлят деление на группы

Определят тему и цели урока

Создадут критериии оценки работы

Выполнят домашнее задание

Осмысление

Организация чтения текста

Читают текст

С пометками - смайлики

Внимательно прочитают текст

Рефлексия

Организует работу с конспектом

Контрольные вопросы:

1.Из чего складывается двоичная система счисления?

2.Какие ученые изучали двоичную систему счисления?

3.По каким правилам осуществляется выполнение арифметических действий над двоичными числами?

4.Расскажите таблицу сложения, вычитания двоичных чисел.

5.Как выполняются операции умножения, деления двоичных чисел.

Решите задачи:

Выполните сложение:

1001001 + 10101 (ответ 1011110);
101101 + 1101101 (
ответ 10011010)
11000,11 + 11010,11 (
ответ 110011,1)

Выполните вычитание:

10001000 – 1110011 (ответ 10101)
1101100 – 10110110

(ответ – 1001010)
110101,101 – 1001,111 (101011,11)

Выполните умножение:

100001*111,11

(ответ : 11111111,11)
10011*1111,01

(ответ : 100100001,11)

Выполните деление:

1000000 / 1110 (ответ :100)
11101001000/111100

(ответ : 11111)

Запись конспекта

Отвечают на вопросы, выполняют задания

Смайлики

Запишут конспект

Ответят на вопросы, выполнят задания

Будут внимательно слушать друг друга, критически оценят друг друга

Обратная связь

Организует обратную связь:

1.Что понравилось на уроке?

2. Что не понравилось на уроке?

3. Какие возникли вопросы по уроку?

Заполнят листы обратной связи

Учащиеся смогут выразить свои мысли на бумаге

Домашнее задание

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

Выполните действия:

1) 110010 + 111,01;

2) 11110000111 – 110110001;

3) 10101,101 * 111;

4) 10101110/101.

Запишут в дневник домашнее задание

Получат домашнее задание

Оценивание

Согласно критериям выставляет учащимся суммативную оценку

Подадут дневники на оценку

В дневник выставятся объективные оценки

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

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

– Чему равно основание двоичной системы счисления? (q = 2)

– Какой вид имеет развёрнутая форма записи двоичного числа? (А 2 =а n-1 *2 n-1 + …a 0*2 0 + a -1 *2 -1 +…a -m *2 -m , где а i равно 1 или 0.)

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

Двоичная арифметика.

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

Все позиционные системы «одинаковы», а именно, во всех них арифметические операции выполняются по одним и тем же правилам:

    справедливы одни и те же законы арифметики: коммуникативный, ассоциативный, дистрибутивный;

    справедливы правила сложения, вычитания, умножения и деления столбиком;

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

Сложение.

Таблица сложения двоичных чисел проста.

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
1 + 1 + 1 = 11

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

Пример.

Вычитание.

0 – 0 = 0
0 – 1 = 1
1 – 0 = 1
1 – 1 = 0

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

Пример.

Умножение.

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

Пример.

Деление.

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

Пример.

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

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

Но если задаться вопросом что такое на самом деле «0» и «1» в цифровом устройстве, то очевидный ответ будет звучать так:«электричество»! Да, «истина» и «ложь» в электронных устройствах кодируются с помощью напряжения (если ты забыл что это такое, то можешь просто воспринимать его как давление воды в трубе. Аналогия хоть и не точная, но зато понятная). На самом деле мы можем что угодно принять за «истину» или «ложь». Просто выбрать два разных значения и одно из них считать за «истину», а второе за «ложь».

Например, возьмём монету, «орла» будем считать за «1», а решку - за «0». Такая простая идея позволяет строить вычислительные машины из чего угодно. Можно даже построить механический компьютер. Правда он будет жутко медленный, очень дорогой и невероятно огромный, т. е. абсолютно бесполезное устройство.

Но вернёмся к электрическому представлению «0» и «1». Инженеры решили этот вопрос в лоб и просто приняли 0 вольт за «0», а за «1» напряжение большее ~2.5 вольт. Были придуманы простейшие схемы (логические элементы), сначала на электронных лампах и реле, а потом на транзисторах, которые умеют распознавать эти уровни напряжения и выполнять логические функции: И, НЕ, ИЛИ, И-НЕ и т. д. На основе этих схем были построены более сложные элементы: триггеры, счетчики, сумматоры, шифраторы и дешифраторы, мультиплексоры и демультиплексоры, регистры, - из которых в дальнейшем были созданы ещё более сложные устройства такие как АЛУ, ячейки памяти и многие другие необходимые блоки современных цифровых устройств.

Соглашение, когда 0В обозначает «0», а ~2.5В обозначает «1» принято называть положительной логикой. Если же принято наоборот (0В = «1», а 2.5В = «0»), то такое соглашение называют отрицательной логикой. Какой вариант использовать -- выбор разработчика. К тому же сейчас существует множество схем, которые работают и с другими напряжениями. В целом они делятся на два больших семейства: ТТЛ (TTL) и КМОП (CMOS). Существуют также более современные семейства LVTTL, LVCMOS. Не буду сейчас на них подробно останавливаться.

Системы счисления

Система счисления - это практически тоже самое, что алфавит для записи слов, только он служит для записи чисел. Двоичный алфавит состоит из цифр «0» и «1», а десятичный из 0, 1, 2, 3, 4, 5, 6, 7, 8 ,9. Восьмиричный из 0, 1, 2, 3, 4, 5, 6, 7. С помощью такого «численного алфавита» мы записываем все возможные числа. При этом все современные активно использующиеся системы счисления таковы, что для записи любого числа достаточно только тех цифр, что есть в выбранной системе счисления. При этом количество разных цифр в системе счисления называется её «основанием». Двоичная система имеет основание 2, десятичная -- 10, восьмиричная -- 8, шестандцатиричная -- 16, шестидесятиричная -- 60 и т.д.

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

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

D = d p-1 b p-1 + d p-2 b p-2 + ... + d 1 b 1 + d 0 b 0 .d -1 b -1 + d -2 b -2 + ... + d -n b -n

С помощью этой формулы можно записать как целое число, так и число дробное. p -- число знаков слева от точки, а n -- после запятой, а b -- это основание системы. Для примера запишем число 22.15:

22.15 = d 2-1 b 2-1 + d 2-2 b 2-2 .d -1 b -1 +d -2 b -2 = 2 1 10 1 + 2 0 10 0 .1 -1 10 -1 +5 -2 10 -2

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

Позиционные системы таковы, что если в результате сложения, полученное число превышает «основание», то мы добавляем новый разряд слева: 5+7 = 12, 11+99 = 110 и т.д. Эти правила сложения тебе известны со времен начальной школы. И они успешно применяются как десятичным, так и к двоичным числам.

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

Арифметика нулей и единиц

Выполнять арифметические операции достаточно легко, так как у нас всего две цифры и несколько правил:

1 + 0 = 01 0 + 0 = 00 1 + 1 = 10 (+ 1 разряд переноса) = 10 1 * 1 = 01 1 - 1 = 00

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

Как видно сумма двух 8-разрядных чисел не всегда равна 8 разрядам. В этом примере мы получили 9! Ниже я показал, что произойдёт, если сложить два 8-разрядных числа в устройстве, которое умеет работать только с 8-разрядными числами, если забыть про перенос в старший разряд.

Мы потеряли самый старший разряд (9-й), который в результате сложения должен был быть равен «1»! Таким образом, реальное цифровое устройство всегда должно уметь учитывать перенос из младшего разряда в старший, иначе некоторые операции сложения всегда будут давать неверный результат.

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



Предыдущая статья: Следующая статья:

© 2015 .
О сайте | Контакты
| Карта сайта