Арифметические операции в двоичной системе счисления сложение. Сложение двоичных чисел

  1. Место урока: 9 класс-3 урок изучаемого раздела
  2. Тема занятия: Арифметические операции в двоичной системе счисления.

Вид занятия: лекция, беседа, самостоятельная работа.

Цели занятия:

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

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

Развивающая: развитие внимания, памяти учащихся, развитие умения сопоставлять полученную информацию.

Межпредметные связи: Математика:

Учебное оборудование (оснащение) занятия: проектор, таблица, карточки с заданиями.

Методическое обеспечение занятия: презентация в PowerPoint.

План урока

  1. Организационный момент (2 мин).
  2. Повторение (10)
  3. Объяснение нового материала (15 мин)
  4. Закрепление пройденного материала (10 мин)
  5. задание работы на дом
  6. Рефлексия (2 мин)
  7. Подведение итогов (2 мин)

Ход урока

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

Давайте с вами вспомним:

  1. Что называется системой счисления?
  2. Что называется основанием системы счисления?
  3. Какое основание имеет двоичная система счисления?
  4. Укажите, какие числа записаны с ошибками и аргументируйте ответ:
    123
    8 , 3006 2 , 12ААС09 20 , 13476 10 ,
  5. Какое минимальное основание должна иметь система счисления, если в ней могут быть записаны числа: 10, 21, 201, 1201
  6. Какой цифрой заканчивается четное двоичное число?
    Какой цифрой заканчивается нечетное двоичное число?

4 . Изучение нового материала сопровождается презентацией

/ Приложение 1/

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

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

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

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

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

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

Сложение

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

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

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

1011022+111112=?

1110112+110112=?

Вычитание

Самостоятельная работа учащихся в тетради для закрепления материала

101101 2 -11111 2 =?

110011 2 -10101 2 =?
Умножение
Рассмотрим примеры на умножение.

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

Операция деления выполняется по алгоритму, подобному алгоритму выполнения операции деления в десятичной системе счисления.

Рассмотрим пример на деление

Закрепление (самостоятельная работа учащихся по карточкам выполняется в тетради) /приложение 2/

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

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

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

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

110010+111,01

11110000111-110110001

10101,101*111

6 Рефлексия

Сегодня на уроке самым познавательным для меня было …

Меня удивило, что …

Полученные сегодня на уроке знания я могу применить …

7. Итоги урока

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

Подписи к слайдам:

Тема урока: «Арифметические операции в позиционных системах счисления»Учитель информатики Федорченко Марина ВалентиновнаМОУ Берёзовская СОШ с Берёзовка Тайшетский район Иркутская Область Давайте с вами вспомним: Что называется системой счисления?Что называется основанием системы счисления?Какое основание имеет двоичная система счисления?Укажите, какие числа записаны с ошибками и аргументируйте ответ:1238, 30062, 12ААС0920, 1347610 , Какое минимальное основание должна иметь система счисления, если в ней могут быть записаны числа: 10, 21, 201, 1201Какой цифрой заканчивается четное двоичное число?Какой цифрой заканчивается нечетное двоичное число?
Лаплас писал о своем отношении к двоичной (бинарной) системе счисления великого математика Лейбница: «В своей бинарной арифметике Лейбниц видел прообраз творения. Ему представлялось, что единица представляет божественное начало, а нуль – небытие и что высшее существо создает все из небытия точно таким же образом, как единица и нуль в его системе выражают все числа». Эти слова подчеркивают универсальность алфавита, состоящего из двух символов. Все позиционные системы счисления «одинаковы», а именно, во всех них выполняются арифметические операции по одним и тем же правилам:
справедливы одни и те же законы арифметики: --коммутативный (переместительный) m + n = n + m m · n = n · m ассоциативный (сочетательный) (m + n) + k = m + (n + k) = m + n + k (m · n) · k = m · (n · k) = m · n · k дистрибутивный (распределительный) (m + n) · k = m · k + n · k
справедливы правила сложения, вычитания и умножения столбиком;
правила выполнения арифметических операций опираются на таблицы сложения и умножения.
Сложение в позиционных системах счисления Из всех позиционных систем особенно проста двоичная система счисления. Рассмотрим выполнение основных арифметических действий над двоичными числами. Все позиционные системы счисления "одинаковы”, а именно, во всех них выполняются арифметические операции по одним и тем же правилам:справедливы одни и те же: коммутативный, ассоциативный, дистрибутивный;справедливы правила сложения, вычитания и умножения столбиком;правила выполнения арифметических операций опираются на таблицы сложения и умножения. Сложение
При сложении столбиком двух цифр справа налево в двоичной системе счисления, как в любой позиционной системе, в следующий разряд может переходить только единица. Результат сложения двух положительных чисел имеет либо столько же цифр, сколько у максимального из двух слагаемых, либо на одну цифру больше, но этой цифрой может быть только единица. Рассмотрим примеры Решить примеры самостоятельно:
1011012 + 111112
1110112 + 110112
1001100
1010110
При выполнении операции вычитания всегда из большего по абсолютной величине числа вычитается меньшее и у результата ставится соответствующий знак.
Вычитание Рассмотрим примеры Примеры:
1011012– 111112
1100112– 101012
1110
11110
Умножение в позиционных системах счисления Операция умножения выполняется с использованием таблицы умножения по обычной схеме (применяемой в десятичной системе счисления) с последовательным умножением множимого на очередную цифру множителя.Рассмотрим примеры на умножение. Рассмотрим примеры Рассмотрим пример на деление
Решим примеры:
11012 1112

111102:1102=
1011011
101
Домашнее задание 1.&3.1.22.Выучить правила выполнения арифметических действий в двоичной системе счисления, выучить таблицы сложения, вычитания, умножения.3. Выполните действия:110010+111,0111110000111-11011000110101,101*111 РефлексияСегодня на уроке самым познавательным для меня было …Меня удивило, что …Полученные сегодня на уроке знания я могу применить …

Пример 1.Найдите X, если Для преобразования левой части равенства последовательно воспользуемся законом де Моргана для логического сложения и законом двойного отрицания: Согласно распределительному закону для логического сложения: Согласно закону исключения третьего и закона исключения констант: Полученную левую часть приравняем правой: X = В. Окончательно получим: X = В. Пример 2.Упростите логическое выражение Правильность упрощения проверьте с помощью таблиц истинности для исходного и полученного логического выражения. Согласно закону общей инверсии для логического сложения (первому закону де Моргана) и закону двойного отрицания: Согласно распределительному (дистрибутивному) закону для логического сложения: Согласно закону противоречия: Согласно закону идемпотентности Подставляем значения и, используя переместительный (коммутативный)закон и группируя слагаемые, получаем: Согласно закону исключения (склеивания) Подставляем значения и получаем: Согласно закону исключения констант для логического сложения и закону идемпотентности: Подставляем значения и получаем: Согласно распределительному (дистрибутивному) закону для логического умножения: Согласно закону исключения третьего: Подставляем значения и окончательно получаем: 2. Логические основы компьютера Дискретный преобразователь, который после обработки входных двоичных сигналов выдаёт на выходе сигнал, являющийся значением одной из логических операций, называется логическим элементом. Ниже приведены условные обозначения (схемы) базовых логических элементов, реализующих логическое умножение (конъюнктор), логическое сложение (дизъюнктор) и отрицание (инвертор). Рис. 3.1. Конъюнктор, дизъюнктор и инвертор Устройства компьютера (сумматоры в процессоре, ячейки памяти в оперативной памяти и др.) строятся на основе базо­вых логических элементов. Пример 3. По заданной логической функции F(A, В) = =B&АÚB&A построить логическую схему. Построение необходимо начинать с логической операции, которая должна выполняться последней. В данном случае такой операцией является логическое сложение, следовательно, на выходе логической схемы должен быть дизъюнктор. На него сигналы подаются с двух конъюнкторов, на которые в свою очередь подаются один входной сигнал нормальный и один инвертированный (с инверторов). Пример 4. Логическая схема имеет два входа X и Y. Определить логические функции F1(X,Y) и F2(X,Y), которые реализуются на ее двух выходах. Функция F1(X,Y) реализуется на выходе первого конъюнктора, то есть F1(X,Y) = X&Y. Одновременно сигнал с конъюнктора подается на вход инвертора, на выходе которого реализуется сигнал X&Y, кото­рый, в свою очередь, подается на один из входов второго конъюнктора. На другой вход второго конъюнктора подается сигнал Xv Y с дизъюнктора, следовательно, функция F2(X,Y) = X&Y&,(XvY). Рассмотрим схему сложения двух n-разрядных двоичных чисел. При сложении цифр i-ro разряда складываются ai и bi, а также Pi-1 - перенос из i-1 разряда. Результатом будет st - сумма и Pi - перенос в старший разряд. Таким образом, одноразрядный двоичный сумматор - это устройство с тремя входами и двумя выходами. Пример 3.15. Построить таблицу истинности одноразрядного двоичного сумматора, воспользовавшись таблицей сложения двоичных чисел. Триггер. Для хранения информации в оперативной памяти компьютера, а также во внутренних регистрах процессора ис­пользуются триггеры. Триггер может находиться а одном из двух устойчивых состояний, что позволяет запоминать, хра­нить и считывать 1 бит информации. Самый простой триггер - .RS-триггер. Он состоит из двух логических элементов ИЛИ-НЕ, которые реализуют логиче­скую функцию F9 (смотри таблицу 3.1). Входы и выходы элементов соединены кольцом: выход пер­вого соединен со входом второго и выход второго - со входом первого. Триггер имеет два входа S (от англ. set - установка) и Я (от англ. reset - сброс) и два выхода Q (прямой) и Q (инверсный). Рис. 2 Логическая схема RS-триггера Пример 3.16. Построить таблицу, описывающую состояние входов и выходов RS-триггера. Если на входы поступают сигналы R = 0 и S = 0, то триггер находится в режиме хранения, на выходах Q и Q сохраняются установленные ранее значения. Если на установочный вход S поступает на короткое время сигнал 1, то триггер переходит в состояние 1 и после того, как сигнал на входе S станет равен 0, триггер будет сохранять это состояние, то есть будет хранить 1. При подаче 1 на вход R триггер перейдет в состояние 0. Подача на оба входа S и R логической единицы может при­вести к неоднозначному результату, поэтому такая комбина­ция входных сигналов запрещена. Задания для самостоятельного выполнения 1. Существуют 16 логических функций от двух переменных (смотри таблицу 3.1). Постройте их логические схемы с помощью базовых логических элементов: конъюнктора, дизъюнктора и инвертора. 2. Доказать, что рассмотренная в примере 3.10 логическая схема является одноразрядным двоичным полусумматором (не учитывается перенос из младшего разряда). 3. Доказать, построив таблицу истинности, что логическая функция Р = (A&B)v(A&,P0)v(B&P0) определяет перенос в старший разряд при сложении двоичных чисел (А и В - слагаемые, Ро - перенос из младшего разряда). 4. Доказать, построив таблицу истинности, что логическая функция S = (AvBvP0)&Pv(A&.B&P0) определяет сумму при сложении двоич­ных чисел (А и В - слагаемые, Ро - перенос из младшего разряда). 5. Построить логическую схему одноразрядного двоичного сумматора. Какое количество базовых логических элементов необходимо для реализации 64-разрядного сумматора двоичных чисел? 6. Какое количество базовых логических элементов образуют оперативную память современного компьютера объемом 64 Мбайта? 1. Запишите в развернутом виде числа: а)A8=143511; г)А10=143,511; 6)А2=100111; д)А8=0,143511; в)А16=143511; е)А1е=1АЗ,5С1. 2. Запишите в свернутой форме следующие числа: а)А10=9-101+1*10+5"10-1+3-10~2; б)А16=А-161+1-16°+7-16"1+5-16~2. 3.Правильно ли записаны числа в соответствующих системах счисле­ния: а)А10=А,234; в) А16=456,46; б)А8=-5678; г)А2=22,2? 4. Какое минимальное основание имеет система счисления, если в ней записаны числа 127, 222, 111? Определите десятичный эквива­лент данных чисел в найденной системе счисления. 5. Чему равен десятичный эквивалент чисел 101012, 101018 1010116? 6. Трехзначное десятичное число оканчивается цифрой 3. Если эту цифру переместить на два разряда влево, то есть с нее будет начина­ ться запись нового числа, то это новое число будет на единицу боль­ ше утроенного исходного числа. Найдите исходное число. 2.22.Шестизначное десятичное число начинается слева цифрой 1. Если эту цифру перенести с первого места слева на последнее место спра­ ва, то значение образованного числа будет втрое больше исходного. Найдите исходное число. 2.23.Какое из чисел 1100112, 1114, 358 и 1В16 является: а) наибольшим; б) наименьшим? 2.27.Существует ли треугольник, длины сторон которого выражаются числами 12g, 1116 и 110112? 2.28.Какое наибольшее десятичное число можно записать тремя цифра­ ми в двоичной, восьмеричной и шестнадцатеричной системах счис­ ления? 2.29.«Несерьезные» вопросы. Когда 2x2=100? Когда 6x6=44? Когда 4x4=20? 2.30. Выпишите целые десятичные числа, принадлежащие следующим числовым промежуткам: а) ; б) ; в) . 2.31.В классе 11112 девочек и 11002 мальчиков. Сколько учеников в классе? 2.32.В классе 36д учеников, из них 21q девочек и 15q мальчиков. В какой системе счисления велся счет учеников? 2.33.В саду 100q фруктовых деревьев, из них 33q яблони, 22q груши, 16q слив и 5q вишен. В какой системе счисления посчитаны деревья? 2.34.Было 100q яблока. После того как каждое из них разрезали попо­ лам, стало 1000q половинок. В системе счисления с каким основа­ нием вели счет? 2.35.У меня 100 братьев. Младшему 1000 лет, а старшему 1111 лет. Стар­ ший учится в 1001 классе. Может ли такое быть? 2.36.Некогда был пруд, в центре которого рос один лист водяной лилии. Каждый день число таких листьев удваивалось, и на десятый день вся поверхность пруда уже была заполнена листьями лилий. Сколь­ ко дней понадобилось, чтобы заполнить листьями половину пру­ да? Сколько листьев было после девятого дня?. 2.37.Путем подбора степеней числа 2, в сумме дающих заданное число, переведите в двоичную систему счисления следующие числа: а) 5; в) 12; д) 32; б) 7; г) 25; е) 33. Проверить правильность перевода с помощью программы Advan­ced Converter. 2.3. Перевод чисел из одной системы счисления в другую 2.3.1. Перевод целых чисел из одной системы счисления в другую Можно сформулировать алгоритм перевода целых чисел из системы с основанием р в систему с основанием q: 1. Основание новой системы счисления выразить цифрами исходной системы счисления и все последующие дейст­ вия производить в исходной системе счисления. 2. Последовательно выполнять деление данного числа и по­ лучаемых целых частных на основание новой системы счисления до тех пор, пока не получим частное, меньшее делителя. 3. Полученные остатки, являющиеся цифрами числа б но­ вой системе счисления, привести в соответствие с алфави­ том новой системы счисления. 4. Составить число в новой системе счисления, записывая его, начиная с последнего остатка. Пример 2.12.Перевести десятичное число 17310 в восьме­ричную систему счисления: ■ Получаем: 17310=2558. Пример 2.13.Перевести десятичное число 17310 в шестнад-цатеричную систему счисления: - Получаем: 17310=AD16. Пример 2.14.Перевести десятичное число 1110 в двоичную систему счисления. Получаем: 111O=10112. Пример 2.15.Иногда более удобно записать алгоритм пере­вода в форме таблицы. Переведем десятичное число 36310 в дво­ичное число. 2.3.2. Перевод дробных чисел из одной системы счисления в другую Можно сформулировать алгоритм перевода правильной дро­би с основанием р в дробь с основанием q: 1. Основание новой системы счисления выразить цифрами исходной системы счисления и все последующие дейст­ вия производить в исходной системе счисления. 2. Последовательно умножать данное число и получаемые дробные части произведений на основание новой системы до тех пор, пока дробная часть произведения не станет равной нулю или будет достигнута требуемая точность представления числа. 3. Полученные целые части произведений, являющиеся цифрами числа в новой системе счисления, привести в со­ ответствие с алфавитом новой системы счисления. 4. Составить дробную часть числа в новой системе счисле­ ния, начиная с целой части первого произведения. Пример 2.16. Перевести число 0,6562510 в восьмеричную си­стему счисления. Пример 2.17. Перевести число 0,6562510 в шестнадцатерич-ную систему счисления. Пример 2.18. Перевести десятичную дробь 0,562510 в двоич­ную систему счисления. Пример 2.19.Перевести в двоичную систему счисления де­сятичную дробь 0.710. Очевидно, что этот процесс может продолжаться бесконеч­но, давая все новые и новые знаки в изображении двоичного эквивалента числа 0,710. Так, за четыре шага мы получаем число 0,10112,а за семь шагов число 0,10110012,которое явля­ется более точным представлением числа 0,710 в двоичной сис­теме счисления, и так далее. Такой бесконечный процесс обры­вают на некотором шаге, когда считают, что получена требуемая точность представления числа. 2.3.3. Перевод произвольных чисел Перевод произвольных чисел, то есть чисел, содержащих це­лую и дробную части, осуществляется в два этапа. Отдельно пе­реводится целая часть, отдельно - дробная. В итоговой записи полученного числа целая часть отделяется от дробной запятой. Пример 2.20.Перевести число 17,2510 в двоичную систему счисления. Переводим целую часть: Переводим дробную часть: Пример 2.21. Перевести число 124,2510 в восьмеричную сис­тему. 2.3.4. Перевод чисел из системы счисления с основанием 2 в систему счисления с основанием 2п и обратно Перевод целых чисел- Если основание q-ичной системы счис­ления является степенью числа 2, то перевод чисел из q-ичной системы счисления в двоичную и обратно можно проводить по более простым правилам. Для того чтобы целое двоичное число записать в системе счисления с основанием q = 2", нужно: 1. Двоичное число разбить справа налево на группы по п цифр в каждой. 2. Если в последней левой группе окажется меньше п разря­ дов, то ее надо дополнить слева нулями до нужного числа разрядов. 3. Рассмотреть каждую группу как n-разрядное двоичное число и записать ее соответствующей цифрой в системе счисления с основанием q = 2п. Пример 2.22. Число 1011000010001100102 переведем в во­сьмеричную систему счисления. Разбиваем число справа налево на триады и под каждой из них записываем соответствующую восьмеричную цифру: Получаем восьмеричное представление исходного числа: 5410628. Пример 2.23. Число 10000000001111100001112 переведем в шестнадцатеричную систему счисления. Разбиваем число справа налево на тетрады и под каждой из них записываем соответствующую шестнадцатеричную цифру: Получаем шестнадцатеричное представление исходного чис­ла: 200F8716. Перевод дробных чисел. Для того, чтобы дробное двоичное число записать в системе счисления с основанием q = 2", нуж­но: 1. Двоичное число разбить слева направо на группы по п цифр в каждой. 2. Если в последней правой группе окажется меньше п раз­ рядов, то ее надо дополнить справа нулями до нужного числа разрядов. 3. Рассмотреть каждую группу как n-разрядное двоичное число и записать ее соответствующей цифрой в системе счисления с основанием q = 2п. Пример 2.24.Число 0,101100012 переведем в восьмеричную систему счисления. Разбиваем число слева направо на триады и под каждой из них записываем соответствующую восьмеричную цифру: Получаем восьмеричное представление исходного числа: 0,5428. Пример 2.25. Число 0,1000000000112 переведем в шестнад-цатеричную систему счисления. Разбиваем число слева направо на тетрады и под каждой из них записываем соответствующую шестнадцатеричную цифру: Получаем шестнадцатеричное представление исходного чис­ла: 0,80316. Перевод произвольных чисел. Для того чтобы произвольное двоичное число записать в системе счисления с основанием q - 2n, нужно: [ 1. Целую часть данного двоичного числа разбить справа на­ лево, а дробную - слева направо на группы по п цифр в каждой. 2. Если в последних левой и/или правой группах окажется меньше n разрядов, то их надо дополнить слева и/или справа нулями до нужного числа разрядов. 3. Рассмотреть каждую группу как n-разрядное двоичное число и записать ее соответствующей цифрой в системе счисления с основанием q = 2п. Пример 2.26.Число 111100101,01112 переведем в восьме­ричную систему счисления. Разбиваем целую и дробную части числа на триады и под каждой из них записываем соответствующую восьмеричную цифру: Получаем восьмеричное представление исходного числа: 745,34S. Пример 2.27.Число 11101001000,110100102 переведем в шестнадцатеричную систему счисления. Разбиваем целую и дробную части числа на тетрады и под каждой из них записываем соответствующую шестнадцатерич­ную цифру: Получаем шестнадцатеричное представление исходного чис­ла: 748,D216. Перевод чисел из систем счисленияс основанием q = 2пв двоичную систему.Для того, чтобы произвольное число, запи­санное в системе счисления с основанием q = 2 , перевести в двоичную систему счисления, нужно каждую цифру этого чис­ла заменить ее n-значным эквивалентом в двоичной системе счисления. Пример2.28. Переведем шестнадцатеричное число 4АС351б в двоичную систему счисления. В соответствии с алгоритмом: i Получаем: 10010101100001101012. Задания для самостоятельного выполнения 2.38. Заполните таблицу, в каждой строке которой одно и то же целое число должно быть записано в различных системах счисления. 2.39. Заполните таблицу, в каждой строке которой одно и то же дробное число должно быть записано в различных системах счисления. 2.40. Заполните таблицу, в каждой строке которой одно и то же произво­ льное число (число может содержать как целую, так и дробную часть) должно быть записано в различных системах счисления. 2.4. Арифметические операции в позиционных системах счисления

Арифметические операции в двоичной системе счисления.


Пример 2.29. Рассмотрим несколько примеров сложения двоичных чисел:

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


Пример 2.31. Рассмотрим несколько примеров умножения двоичных чисел:

Вы видите, что умножение сводится к сдвигам множимого и сложениям.

Деление. Операция деления выполняется по алгоритму, по­добному алгоритму выполнения операции деления в десяти­чной системе счисления.


Сложение в других системах счисления. Ниже приведена таблица сложения в восьмеричной системе счисления:

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

Ответ для каждого числа запишите в указанной и десятичной систе­мах счисления. 2.44. Какое число предшествует каждому из данных:

2.45. Выпишите целые числа, принадлежащие следующим числовым промежуткам:

а) в двоичной системе;

б) в восьмеричной системе;

в) в шестнадцатеричной системе.

Ответ для каждого числа запишите в указанной и десятичной систе­мах счисления.



2.47. Найдите среднее арифметическое следующих чисел:

2.48.Сумму восьмеричных чисел 17 8 + 1700 8 + 170000 3 + 17000000 8 +
+ 1700000000 8 перевели в шестнадцатеричную систему счисления.
Найдите в записи числа, равного этой сумме, пятую цифру слева.


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

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

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

11100011 2 =1*2 7 +1*2 6 +1*2 5 +0*2 4 +0*2 3 +0*2 2 +1*2 1 +1*2 0 =128+64+32+2+1=227 10

0,10100011 2 =1*2 -1 +0*2 -2 +1*2 -3 +0*2 -4 +0*2 -5 ++0*2 -6 +1*2 -7 +1*2 -8 =0.5+0.125+0.0078+0.0039=0.6367

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

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

а) целое десятичное число делится нацело на основание 2, затем на 2 делятся последовательно все частные от целочисленного деления, до тех пор пока частное не станет меньше основания. В результат заносится последнее частное и все остатки от деления, начиная с последнего. Например:

перевести число 227 в двоичную форму:

227:2=113 (записываем в результат остаток от деления 1), 113:2=56 (записываем в результат остаток от деления 1), 56:2=28 (записываем в результат остаток от деления 0), 28:2=14 (записываем в результат остаток от деления 0), 14:2=7 (записываем в результат остаток от деления 0), 7:2=3 (записываем в результат остаток от деления 1), 3:2=1 (записываем в результат остаток от деления 1), записываем в результат последнее частное – 1. Итого получаем: 227 10 =11100011 2 . Проверим обратным переводом:

1*2 0 +1*2 1 +0*2 2 +0*2 3 +0*2 4 +1*2 5 +1*2 6 +1*2 7 =1+2+32+64+128=227

б) десятичная дробь последовательно умножается на основание 2, причем сразу после каждой операции умножения полученная целая часть записывается в результат и в дальнейшем умножении не участвует (отбрасывается). Количество операций умножения зависит от требуемой точности, например:

переведем в двоичную форму число 0.64:

0.64*2=1.28 (отбрасываем 1 и записываем в результат 1)

0.28*2=0.56 (записываем в результат 0)

0.56*2=1.12 (отбрасываем 1 и записываем в результат 1)

0.12*2=0.24 (записываем в результат 0)

0.24*2=0.48 (записываем в результат 0)

0.48*2=0.96 (записываем в результат 0)

0.96*2=1.82 (записываем в результат 1)

Итого: 0.64 10 =0.1010001 2

Проверим обратным переводом:

1*2 -1 +0*2 -2 +1*2 -3 +0*2 -4 +0*2 -5 +0*2 -6 +1*2 -7 = 0.5*0+0.125+0+0+0+0.0078=0.6328

Представление в компьютере отрицательных чисел

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

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

Форма значения со знаком – старший (левый) разряд метится как знаковый и содержит информацию только о знаке числа:

1 – число отрицательное, 0 – число положительное.

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

5 10 = 0000 0101 2 ; -5 10 =1000 0101 2 .

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

Форма обратного дополнительного кода, перевод в которую производится по следующему алгоритму:

1) Отбросить знаковый разряд;

2) инвертировать все разряды числа;

3) прибавить единицу к полученному коду;

4) восстановить единицу в знаковом разряде.
Например:

Преобразование числа -5 10

Записываем в двоичном виде: 1000 0101; отбрасываем знаковый разряд: 000 0101; инвертируем все разряды: 111 1010; прибавляем единицу: 111 1010 + 1 = 111 1011; восстанавливаем единицу в знаковом разряде: 1111 1011. Итого -5 10 в обратном дополнительном коде записывается как 1111 1011.

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

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

0+0=0, 0+1=1, 1+1=10;

+ 111011

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

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

1) преобразовать отрицательное число из формы со знаком в дополнительный код;

2) выполнить операцию двоичного сложения над всеми разрядами,
включая знаковый, игнорируя единицу переноса из самого высокого
разряда;

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

Например, выполним действие 13-15=13+(-15)

1. Переводим -15 в форму дополнительного кода:

1000 1111 –> 000 1111 -> 111 0000 -> 111 0000 +1=111 0001 -> 1111 0001

2. Складываем 13 и -15:

+11110001

3. Переводим в обычную двоичную форму:

1111 1110 -> 111 1110 ->000 0001 -> 000 0001+1=000 0010 -> 1000 0010 = -2 10

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

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

Например, выполним действие: 15-13=15+(-13)

1. Переводим -13 в форму дополнительного кода:

1000 1101 –> 000 1101 -> 111 0010 -> 111 0010 +1=111 0011 -> 1111 0011

2. Складываем 15 и -13:

+11110011

3. Знаковый разряд равен 0, обратный перевод не требуется, т. е. результат 0000 0010=2 10

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

Например, умножим 6 (0000 0110) на 5 (0000 0101):

*00000101

(умножаем на 1) +00000110

(умножаем на 0) 1

(умножаем на 1) +0000011011

Проверим: 0001 1110=0*2 0 +1*2 1 +1*2 2 +1*2 3 +1*2 4 =2+4+8=16=30

Например, умножим 15 (0000 1111) на 13 (0000 1101):

*00001101

(умножаем на 1) +00001111

(умножаем на 0) 1

(умножаем на 1) +0000111111

(умножаем на 1) +00001111111

Проверим: 1100 0011=1*2 7 +1*2 6 +0*2 5 +0*2 4 +0*2 3 +0*2 2 +1*2 1 +1*2 0 =1+2+64+128=195

Деление. При выполнении операции деления несколько раз производится операция вычитания. Поэтому предварительно следует найти дополнительный код делителя. Деление выполняется путем повторного вычитания и сдвига. Для примера выполним деление числа 195 (1100 0011) на 15 (0000 1111). Дополнительный код числа 0000 1111 -> 11110001. Поскольку по правилам деления каждое промежуточное делимое должно быть больше делителя, выбираем в качестве первого делимого число 11000, т.е. первые пять разрядов и добавляем слева три нуля, дополняя делимое до 8 разрядов. Затем производим сложение его с дополнительным кодом делимого и заносим в результат единицу. Если следующее делимое после сноса очередной цифры будет меньше делителя, то в результат заносится нуль и в делимое сносится еще одна цифра из исходного делимого.

Главная \ Документы \ Для учителя информатики

При использовании материалов этого сайта - и размещение баннера -ОБЯЗАТЕЛЬНО!!!

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

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

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

Возьмём, к примеру, число 246. Эта запись означает, что в числе две сотни, четыре десятка и шесть единиц. Следовательно, можно записать следующее равенство:

246 = 200 + 40 + 6 = 2 * 10 2 + 4 * 10 1 + 6 * 10 0

Здесь знаками равенства отделены три способа записи одного и того же числа. Наиболее интересна нам сейчас третья форма записи: 2 * 10 2 + 4 * 10 1 + 6 * 10 0 . Она устроена следующим образом:

В нашем числе три цифры. Старшая цифра "2" имеет номер 3. Так вот она умножается на 10 во второй степени. Следующая цифра "4" имеет порядковый номер 2 и умножается на 10 в первой. Уже видно, что цифры умножаются на десять в степени на единицу меньше порядкового номера цифры. Уяснив сказанное, мы можем записать общую формулу представления десятичного числа. Пусть дано число, в котором N цифр. Будем обозначать i-ю цифру через a i. Тогда число можно записать в следующем виде: a n a n-1 ….a 2 a 1 . Это первая форма, а третья форма записи будет выглядеть так:

a n a n-1 ….a 2 a 1 = a n * 10 n-1 + a n-1 * 10 n-2 + …. + a 2 * 10 1 + a 1 * 10 0

где a i это символ из набора "0123456789"

В этой записи очень хорошо видна роль десятки. Десятка является основой образования числа. И кстати она так и называется "основание системы счисления", а сама система счисления, поэтому так и называется "десятичной". Конечно, никакими особыми свойствами число десять не обладает. Мы вполне можем заменить десять на любое другое число. Например, число в пятиричной системе счисления можно записать так:

a n a n-1 ….a 2 a 1 = a n * 5 n-1 + a n-1 * 5 n-2 + …. + a 2 * 5 1 + a 1 * 5 0

где a i это символ из набора "01234"

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

a n a n-1 ….a 2 a 1 = a n * 2 n-1 + a n-1 * 2 n-2 + …. + a 2 * 2 1 + a 1 * 2 0

где a i это символ из набора "01"

Эта система самая простая из всех возможных, так как в ней любое число образуется только из двух цифр 0 и 1. Понятно, что проще уже некуда. Примеры двоичных чисел: 10, 111, 101.

Очень важный вопрос. Можно ли двоичное число представить в виде десятичного числа и наоборот, можно ли десятичное число представить в виде двоичного.

Двоичное в десятичное. Это очень просто. Метод такого перевода даёт наш способ записи чисел. Возьмём, к примеру, следующее двоичное число 1011. Разложим его по степеням двойки. Получим следующее:

1011 = 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0

Выполним все записанные действия и получим:

1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0 = 8 + 0+ 2 + 1 = 11. Таким образом, получаем, что 1011(двоичное) = 11 (десятичное). Сразу видно и небольшое неудобство двоичной системы. То же самое число, которое, в десятичной системе записано одним знаком в двоичной системе, для своей записи требует четыре знака. Но это плата за простоту (бесплатно ничего не бывает) . Но выигрыш двоичная система даёт огромный в арифметических действиях. И далее мы это увидим.

Представьте в виде десятичного числа следующие двоичные числа.

а) 10010 б) 11101 с) 1010 в) 1110 г) 100011 д) 1100111 е) 1001110

Сложение двоичных чисел.

Способ сложения столбиком в общем-то такой же как и для десятичного числа. То есть, сложение выполняется поразрядно, начиная с младшей цифры. Если при сложении двух цифр получается СУММА больше девяти, то записывается цифра=СУММА- 10, а ЦЕЛАЯ ЧАСТЬ (СУММА /10), добавляется в старшему разряду. (Сложите пару чисел столбиком вспомните как это делается.) Так и с двоичным числом. Складываем поразрядно, начиная с младшей цифры. Если получается больше 1, то записывается 1 и 1 добавляется к старшему разряду (говорят "на ум пошло").

Выполним пример: 10011 + 10001.

Первый разряд: 1+1 = 2. Записываем 0 и 1 на ум пошло.

Второй разряд : 1+0+1(запомненная единица) =2. Записываем 0 и 1 на ум пошло.

Третий разряд : 0+0+1(запомненная единица) = 1. Записываем 1.

Четвертый разряд 0+0=0. Записываем 0.

Пятый разряд 1+1=2. Записываем 0 и добавляем к шестым разрядом 1.

Переведём все три числа в десятичную систему и проверим правильность сложения.

10011 = 1*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 16 + 2 + 1 =19

10001 = 1*2 4 + 0*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 16 + 1 = 17

100100 = 1*2 5 + 0*2 4 + 0*2 3 + 1*2 2 + 0*2 1 + 0*2 0 =32+4=36

17 + 19 = 36 верное равенство

Примеры для самостоятельного решения:

а) 11001 +101 =

б) 11001 +11001 =

с) 1001 + 111 =

д) 10011 + 101 =

е) 11011 + 1111 =

д) 11111 + 10011 =

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

Для того, чтобы преобразовать десятичное число в двоичное, его нужно разложить по степеням двойки. Но если разложение по степеням десятки получается сразу, то, как разложить по степеням двойки надо немного подумать. Для начала рассмотрим, как это сделать методом подбора. Возьмём десятичное число 12.

Шаг первый. 2 2 = 4, этого мало. Также мало и 2 3 = 8, а 2 4 =16 это уже много. Поэтому оставим 2 3 =8. 12 - 8 = 4. Теперь нужно представить в виде степени двойки 4.

Шаг второй. 4 = 2 2 .

Тогда наше число 12 = 2 3 + 2 2 . Старшая цифра имеет номер 4, старшая степень = 3, следовательно, должны быть слагаемые со степенями двойки 1 и 0. Но они нам не нужны, поэтому чтобы избавится от ненужных степеней, и оставить нужные запишем число так: 1*2 3 + 1*2 2 +0*2 1 + 0*2 0 = 1100 - это и есть двоичное представление числа 12. Нетрудно заметить, что каждая очередная степень - это наибольшая степень двойки, которая меньше разлагаемого числа. Чтобы закрепить метод рассмотрим ещё один пример. Число 23.

Шаг 1. Ближайшая степень двойки 2 4 = 16. 23 -16= 7.

Шаг 2. Ближайшая степень двойки 2 2 = 4. 7 - 4 = 3

Шаг 3. Ближайшая степень двойки 2 1 = 2. 3 - 2 = 1

Шаг 4. Ближайшая степень двойки 2 0 =1 1 - 1 =0

Получаем следующее разложение: 1*2 4 + 0*2 3 +1*2 2 +1*2 1 +1*2 0

А наше искомое двоичное число 10111

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

Пока ЧИСЛО больше нуля делать

ОЧЕРЕДНАЯ ЦИФРА = остаток от деления ЧИСЛА на 2

ЧИСЛО = целая часть от деления ЧИСЛА на 2

Когда этот алгоритм завершит свою работу, последовательность вычисленных ОЧЕРЕДНЫХ ЦИФР и будет представлять двоичное число. Для примера поработаем с числом 19.

Начало алгоритма ЧИСЛО = 19

ОЧЕРЕДНАЯ ЦИФРА = 1

ОЧЕРЕДНАЯ ЦИФРА = 1

ОЧЕРЕДНАЯ ЦИФРА = 0

ОЧЕРЕДНАЯ ЦИФРА = 0

ОЧЕРЕДНАЯ ЦИФРА = 1

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

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

а) 14 б) 29 в) 134 г) 158 е) 1190 ж) 2019

Как преобразовать в десятичное число дробную часть.

Известно, что любое рациональное число можно представить в виде десятичной и обыкновенной дроби. Обыкновенная дробь, то есть дробь вида А/В может быть правильной и неправильной. Дробь называется правильной если А<В и неправильной если А>В.

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

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

А теперь попробуем получить правило перевода, и для начала рассмотрим пример 5,401

Решение:

Целую часть мы получим по уже известным нам правилам, и она равна двоичному числу 101. А дробную часть разложим по степеням 2.

Шаг 1: 2 -2 = 0,25; 0,401 - 0,25 = 0,151. - это остаток.

Шаг 2: Сейчас необходимо степенью двойки представить 0,151. Сделаем это: 2 -3 = 0,125; 0,151 - 0,125 = 0,026

Таким образом, исходную дробную, часть можно представить в виде 2 -2 +2 -3 . То же самое можно записать таким двоичным числом: 0,011. В первом дробном разряде стоит ноль, это потому, что в нашем разложении степень 2 -1 отсутствует.

Из первого и второго шагов ясно, что это представление не точное и может быть разложение желательно продолжить. Обратимся к правилу. Оно говорит, что нам нужно столько знаков М чтобы 10 3 было меньше чем 2 М. То есть 1000<2 M . То есть в двоичном разложении у нас должно быть не менее десяти знаков, так как 2 9 = 512 и только 2 10 = 1024. Продолжим процесс.

Шаг 3: Сейчас работаем с числом 0,026. Ближайшая к этому числу степень двойки 2 -6 = 0,015625; 0,026 - 0,015625 = 0,010375 теперь наше более точное двоичное число имеет вид: 0,011001. После запятой уже шесть знаков, но этого пока недостаточно, поэтому выполняем ещё один шаг.

Шаг 4: Сейчас работаем с числом 0,010375. Ближайшая к этому числу степень двойки 2 -7 = 0,0078125;

0,010375 - 0,0078125 = 0,0025625

Шаг 5: Сейчас работаем с числом 0,0025625. Ближайшая к этому числу степень двойки 2 -9 = 0,001953125;

0,0025625 - 0,001953125 = 0,000609375

Последний получившийся остаток меньше чем 2 -10 и если бы мы желали продолжать приближение к исходному числу, то нам бы понадобилось 2 -11 , но это уже превосходит требуемую точность, а следовательно расчёты можно прекратить и записать окончательное двоичное представление дробной части.

0,401 = 0,011001101

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

А сейчас запишем алгоритм преобразования:

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

Алгоритм

Действие 1. Определим количество необходимых двоичных знаков М из неравенства 10 N < 2 M

Действие 2: Цикл вычисления цифр двоичного представления (цифры после нуля). Номер цифры будем обозначать символом К.

  1. Номер цифры = 1
  2. Если 2 -К > А

То в запись двоичного числа добавляем ноль

    • в запись двоичного числа добавляем 1
    • А = А - 2 -К
  1. К = К + 1
  2. Если К > М
  • то работа алгоритма завершена
  • Иначе переходим на пункт 2.

Переведите десятичные числа в двоичные

а) 3,6 б) 12,0112 в) 0,231 г) 0,121 д) 23, 0091

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

Первый разряд. 1 - 0 =1. Записываем 1.

Второй разряд 0 -1. Не хватает единицы. Занимаем её в старшем разряде. Единица из старшего разряда переходит в младший, как две единицы (потому что старший разряд представляется двойкой большей степени) 2-1 =1. Записываем 1.

Третий разряд . Единицу этого разряда мы занимали, поэтому сейчас в разряде 0 и есть необходимость занять единицу старшего разряда. 2-1 =1. Записываем 1.

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

1101 - 110 = 13 - 6 = 7 (111) Верное равенство.

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

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

Пример: 34 - 22 = 12

Запишем этот пример в двоичном виде. 100010 - 10110 = 1100

Дополнительный код числа 10110 будет такой

01001 + 00001 = 01010. Тогда исходный пример можно заменить сложением так 100010 + 01010 = 101100 Далее необходимо отбросить одну единицу в старшем разряде. Если это сделать то, получим 001100. Отбросим незначащие нули и получим 1100, то есть пример решён правильно

Выполните вычитания. Обычным способом и в дополнительном коде, переведя предварительно десятичные числа в двоичные:

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

Умножение в двоичной системе счисления.

Для начала рассмотрим следующий любопытный факт. Для того, чтобы умножить двоичное число на 2 (десятичная двойка это 10 в двоичной системе) достаточно к умножаемому числу слева приписать один ноль.

Пример. 10101 * 10 = 101010

Проверка.

10101 = 1*2 4 + 0*2 3 + 1*2 2 + 0*2 1 +1*2 0 = 16 + 4 + 1 = 21

101010 =1*2 5 + 0*2 4 + 1*2 3 + 0*2 2 +1*2 1 +0*2 0 = 32 + 8 + 2 = 42

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

1011 * 101 Это умножение можно свести к сумме трёх порязрядных умножений:

1011 * 1 + 1011 * 0 + 1011 * 100 = 1011 +101100 = 110111 В столбик это же самое можно записать так:

Проверка:

101 = 5 (десятичное)

1011 = 11 (десятичное)

110111 = 55 (десятичное)

5*11 = 55 верное равенство

Решите самостоятельно

а) 1101 * 1110 =

б) 1010 * 110 =

д) 101011 * 1101 =

е) 10010 * 1001 =

Примечание: Кстати таблица умножения в двоичной системе состоит только из одного пункта 1 * 1 = 1

Деление в двоичной системе счисления.

Мы уже рассмотрели три действия и думаю уже понятно, что в общем-то действия над двоичными числами мало отличаются от действий над десятичными числами. Разница появляется только в том, что цифр две а не десять, но это только упрощает арифметические операции. Так же обстоит дело и с делением, но для лучшего понимания алгоритм деления разберём более подробно. Пусть нам необходимо разделить два десятичных числа, например 234 разделить на 7. Как мы это делаем.

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

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

Пример: 10010111 / 101

Ищем число, от старшего разряда которое первое было бы больше чем делитель. Это четырехразрядное число 1001. Оно выделено жирным шрифтом. Теперь необходимо подобрать делитель выделенному числу. И здесь мы опять выигрываем в сравнении в десятичной системой. Дело в том, что подбираемый делитель это обязательно цифра, а цифры у нас только две. Так как 1001 явно больше 101, то с делителем всё понятно это 1. Выполним шаг операции.

Итак, остаток от выполненной операции 100. Это меньше чем 101, поэтому чтобы выполнить второй шаг деления, необходимо добавить к 100 следующую цифру, это цифра 0. Теперь имеем следующее число:

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

Третий шаг. Полученное число 110 больше 101, поэтому и на этом шаге мы запишем в частное 1. Получиться так:

Полученное число 11 меньше 101, поэтому записываем в частное цифру 0 и опускаем вниз следующую цифру. Получается так:

Полученное число больше 101, поэтому в частное записываем цифру 1 и опять выполняем действия. Получается такая картина:

1

0

Полученный остаток 10 меньше 101, но у нас закончились цифры в делимом, поэтому 10 это окончательный остаток, а 1110 это искомое частное.

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

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

Задача 1: Получение всех выборок

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

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

Эту задачу можно сформулировать так:

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

Задач такого сорта довольно много. И все они сводятся, как уже было сказано к умению получить все возможные комбинации (далее мы будем называть их выборками) из заданного набора элементов. И сейчас мы рассмотрим общий метод получения всех возможных выборок с использованием операции сложения двоичных чисел. А начнём с примера. Пусть есть множество из трёх предметов. Построим все возможные выборки. Предметы будем обозначать порядковыми номерами. То есть, имеются следующие предметы: 1, 2, 3.

Выборки: (0, 0, 1); (0, 1, 0); (0, 1, 1); (1, 0, 0); (1, 0, 1); (1, 1, 0); (1, 1, 1);

Если в позиции с очередным номером стоит единица, то это означает, что элемент с номером равным этой позиции присутствует в выборке, а если стоит ноль, то элемент не присутствует. Например, выборка (0, 1, 0); состоит из одного элемента с номером 2, а выборка (1, 1, 0); состоит из двух элементов с номерами 1 и 2.

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

001; 010; 011; 100; 101; 110; 111

1; 10; 11; 100; 101; 110; 111

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

Исходные данные алгоритма

Дан набор предметов N - штук. Далее будем называть этот набор множеством исходных элементов. Пронумеруем все элементы исходного множества от 1 до N. Составим двоичное число из N незначащих нулей. 0000… 0 N Это нулевое двоичное число будет обозначать нулевую выборку с которой и начнётся процесс составления выборок. Разряды числа считаются справа налево, то есть самый левый разряд это самый старший.

Договоримся обозначать это двоичное число большими буквами ДВОИЧНОЕ

Алгоритм

Если ДВОИЧНОЕ число состоит целиком из единиц

То прекращаем работу алгоритма

    • Прибавляем к ДВОИЧНОМУ числу единицу по правилам двоичной арифметики.
    • Из полученного ДВОИЧНОГО числа составляем очередную выборку, как было описано выше.

Задача 2: Поиск больших простых чисел

Для начала вспомним, что простым числом называется такое натуральное число, которое делится только на 1 и на само себя. Примеры простых чисел: 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31

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

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

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

Достаточно надежный код можно получить если взять простое в котором, например 150 знаков. Однако, найти такое простое не так просто. Предположим, что некоторое число А (очень большое) нужно проверить на простоту. Это тоже самое, что поискать его делители. Если мы сможем найти делители в интервале от 2 до корень квадратный из А, то оно не простое. Оценим количество чисел которые необходимо проверить на способность разделить число А.

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

Как с этим бороться.

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

Являются простыми с высокой степенью вероятности.

Чтобы понять фразу написанную выше, посчитаем сколько простых чисел находится в первой тысяче и сколько чисел Мерсена в этой же тысяче являются простыми. Итак, числа Мерсена в первой тысяче - это следующие:

2 1 - 1 = 1 ; 2 2 -1 = 3 ; 2 3 - 1 = 7 ; 2 4 - 1 = 15; 2 5 - 1 = 31 ; 2 6 -1 = 63;

2 7 - 1 =127 ; 2 8 -1 = 255; 2 9 - 1 = 511;

Жирным шрифтом помечены простые числа. Всего на 9 чисел Мерсена 5 простых. В процентах это 5/9*100 = 55,6%. В то же время на 1000 первых натуральных чисел только 169 простых. В процентах это 169/1000*100 = 16,9%. То есть в первой тысяче в процентом отношении простые среди чисел Мерсена встречаются почти в 4 раза чаще, чем среди просто натуральных чисел

___________________________________________________________

А теперь возьмём конкретное число Мерсена, например 2 4 - 1. Запишем его в виде двоичного числа.

2 4 - 1 = 10000 - 1 = 1111

Возьмём следующее число Мерсена 2 5 -1 и запишем его двоичным числом. Получим следующее:

2 5 -1 = 100000 - 1 = 11111

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

Быстрый перевод десятичного числа в двоичное

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

Такой способ был придуман французским математиком Лежандром. Пусть,например, дано число 11183445. Делим его на 64, получается остаток 21 и частное 174741. Это число делим опять на 64, получается в остатке 21 и частное 2730.Наконец, 2730, деленное на 64, даёт в остатке 42 и частное 42. Но 64 вдвоичной системе есть 1000000, 21 в двоичной системе - 10101, а 42 есть 101010,Поэтому, исходное число запишется в двоичной системе следующим образом:

101010 101010 010101 010101

Чтобы было более понятно, ещё один пример с числом поменьше. Переведём вдвоичное представление число 235. Поделим 235 на 64 с остатком. Получим:

ЧАСТНОЕ = 3, двоичное 11 или 000011

ОСТАТОК = 43, двоичное 101011

Тогда 235 = 11101011, Проверим этот результат:

11101011 = 2 7 + 2 6 + 2 5 + 2 3 + 2 1 + 2 0 = 128+64+32+8+2+1 = 235

Примечания:

  1. Нетрудно заметить, что в окончательное двоичное число включаются все остатки и на последнем шаге и остаток и частное.
  2. Частное записывается перед остатком.
  3. Если полученное частное или остаток имеют меньше 6 разрядов, в двоичном представлении (6 нулей содержит двоичное представление числа 64 = 1000000), то к нему добавляются незначащие нули.

И еще один сложный пример. Число 25678425.

Шаг 1: 25678425 делим на 64

Частное = 401225

Остаток = 25 = 011001

Шаг 2: 401225 делим на 64

Частное = 6269

Остаток = 9 = 001001

Шаг 3: 6269 делим на 64

Частное = 97

Остаток = 61 = 111101

Шаг 4: 97 делим на 64

Частное = 1 = 000001

Остаток = 33 = 100001

Число результат = 1.100001.111101.001001.011001

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

Переведите в двоичное представление числа:

ПРИЛОЖЕНИЕ: ТАБЛИЦА 1

0,015625

0,0078125

0,00390625

0,001953125

0,0009765625

0,00048828125

0,000244140625

0,0001220703125

0,00006103515625

0,000030517578125

0,0000152587890625

0,00000762939453125

0,000003814697265625

0,0000019073486328125

0,00000095367431640625

0,000000476837158203125

Сложение. В основе сложения чисел в двоичной системе счисления лежит таблица сложения одноразрядных двоичных чисел (табл. 6).

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

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

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

Вычитание. В основе вычитания двоичных чисел лежит таблица вычитания одноразрядных двоичных чисел (табл. 7).

При вычитании из меньшего числа (0) большего (1) производится заем из старшего разряда. В таблице заем обозначен 1 с чертой.

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

Для примера произведем вычитание двоичных чисел :

Умножение. В основе умножения лежит таблица умножения одноразрядных двоичных чисел (табл. 8).

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