Настройка оборудования и программного обеспечения

Бинарная арифметика. Тема урока: "Двоичная арифметика"

ДВОИЧНАЯ АРИФМЕТИКА

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

Двоичные операции

сложение

вычитание

умножение

1+1=0+ед.переноса

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

Переносы

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

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

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

1011,1 х 101,01 = 111100,011

х 10101

00000 + 10111 00000 10111____

Особенности выполнения деления двоичных чисел поясняются следующим примером:

1100,011:10,01 = ? 1100011|10010 -10010 101,1

11011 -10010 10010 -10010 00000

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

ФОРМЫ ПРЕДСТАВЛЕНИЯ ЧИСЕЛ В КОМПЬЮТЕРЕ

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

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

В компьютере применяют две формы представления чисел: с фиксированной запятой (точкой) и с плавающей запятой (точкой). Эти формы называют также соответственно естественной и полулогарифмической.

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

2- n

2 -15

< 2 байта, 16 разрядов >

2 -31

< 4 байта, 32 разрядa >

Форматы данных для представления двоичных чисел с фиксированной запятой (точкой)

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

При представлении числа со знаком для кода знака выделяется «знаковый» разряд (обычно крайний слева). В этом разряде 0 соответствует плюсу, а 1 - минусу.

На рис. 1.1, a показан формат для чисел с запятой, фиксированной перед старшим разрядом. В этом формате могут быть с точностью до 2–(n-1) представлены числа (правильные дроби) в диапазоне

2 –(n-1) |x| 1 - 2 –(n-1)

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

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

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

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

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

x = sp q; |q| < 1,

где q - мантисса числа х, sp - характеристика числа х; р - порядок-, s

Основание характеристики (обычно целая степень числа 2).

Мантисса (правильная дробь со знаком) и порядок (целое число со знаком) представляются в системе счисления с основанием, равным s (в соответствующей двоично-кодированной форме). Знак числа совпадает со знаком мантиссы.

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

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

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

В случае представления числа с плавающей запятой со смещенным порядком к его порядку р прибавляется целое число - смещение N = 2k , где k

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

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

порядков р" и р", представляющих собой целые числа со знаками, выполняется соотношение

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

2 ln-2

Код порядка

Код мантиссы

< Длина поля порядка

< Длина поля мантиссы

Знак "-" кодируется единицей, знак "+" - нулем.

Представление чисел с плавающей запятой

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

Число х = s"q называется нормализованным, если мантисса q удовлетворяет условию

1 > |q| 1/s,

т. е. старший разряд мантиссы в s-ричной системе отличен от нуля. В процессе вычислений может получаться ненормализованное число. В этом случае машина, если это предписано командой, автоматически нормализует его («нормализация результата» операции).

Пусть r старших разрядов s-ричной мантиссы равны 0. Тогда нормализация заключается в сдвиге мантиссы на r разрядов влево и уменьшении порядка на r единиц, при этом в младшие r разрядов мантиссы записывается 0. После такой операции число не меняется, а условие (2.4) выполняется. При нулевой мантиссе нормализация невозможна.

В различных ЭВМ применяются представления чисел с плавающей запятой в системах счисления с различными основаниями, но равными целой степени числа 2 (s = 2w ), при этом порядок р представляется целым числом, а мантисса q - числом, в котором группы по w двоичных разрядов изображают цифры мантиссы с основанием системы счисления s= 2w .

Примерами применяемых форм чисел с плавающей запятой с различными основаниями системы счисления являются

x=2p q (1 > |q| 1/2); x=8p q (I > |q| 1/8);

x = l6 p q (I > |q| 1/16).

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

Использование для чисел с плавающей запятой недвоичного основания несколько уменьшает точность вычислений (при заданном числе разрядов мантиссы), но позволяет увеличить диапазон представляемых в машине чисел и ускорить выполнение некоторых операций, в частности

нормализации, за счет того, что сдвиг может производиться сразу на несколько двоичных разрядов (на четыре разряда для s = 16). Кроме того, уменьшается вероятность появления ненормализованных чисел в ходе вычислений.

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

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

Прямой, обратный и дополнительный коды

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

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

Прямой код двоичного числа G с (n-1) цифровыми разрядами определяется как

G пр =

при G 0;

A | G |

при G 0,

где А - величина, равная весу знакового разряда. Для дробных чисел А = 1, а для целых А = 2n-1 .

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

Операция вычитания (алгебраического сложения) сводится к операции простого арифметического сложения при помощи обратного и

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

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

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

разрядную сетку. Для n-разрядной сетки имеем

Go6p=2-2 –(n-1) – lG- l,

если G- - двоичная дробь, и

G- обр = 2n – 1 - |G- |

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

выражением

G- доп =2-|G- |

если G- - двоичная дробь, и

G- доп =2n -|G- |

если G- - целое двоичное число.

Обратный и дополнительный коды числа можно рассматривать как двоичные числа без знаков, при этом для двоичных дробей G- доп = G- обр + 2-(n- 1) , а для двоичных целых чисел С- доп =С- обр +1.

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

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

(+0)пр = 000... 0.

Отрицательный 0 изображается в прямом коде

(- 0)пр = 100. ..О,

в обратном

(-0)обр = 111...1;

в дополнительном коде отрицательный 0 отсутствует.

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

Изменению знака отрицательного числа соответствует инвертирование его кода, если число представлено в обратном коде, и инвертирование и

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

для дробей

G- пр = |G- | = 2 – 2-(n-1) – G- обр -G- пр = |G- | = 2 – G- доп

для целых чисел

G- пр = |G- | = 2n – 1 – G- обр -G- пр = |G- | = 2n – G- доп

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

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

Пусть требуется выполнить две операции: 176154 и 176215

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

восьмеричную систему.

17610 =2608

15410 =2328

21510 =3278

0101100002 0100110102 0110101112

инвертируем вычитаемые в обратный и дополнительный коды

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

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

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

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

Цель :

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

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

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

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

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

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

Ответы на вопросы 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

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

Пример.

Умножение.

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

Пример.

Деление.

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

Пример.

Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!