Про психологию. Учения и методики

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

Цель работы:

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

Задание

Выполните упражнение 1. Перед выполнением упражнения изучите мате- риал по теме из подраздела 2.1.4 .

Упражнение 1

Формулировка задания

Даны числа 1001 (2) и 101 (2) . Найти сумму этих чисел.

Решение

1001 (2)

+ 101 (2)

1. При сложении двух единиц согласно таблице 2 получаем 10. В младшем разряде записываем 0 , а 1 переносится влево на одну позицию.

100 1 (2)

+ 10 1 (2)

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

10 01 (2)

+ 1 01 (2)

3. При сложении 0 и 1 получаем 1 .

1 001 (2)

+ 101 (2)

1 110 (2)

4. В старшем разряде осталась только 1 .

5 Проведем проверку.

1001 (2) =9 (10) , 101 (2) =5 (10) , 1110 (2) =14 (10)

Упражнение 2

Формулировка задания

Даны числа 1101 (2) и 11 (2) . Найти разность этих чисел.

Решение

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

Проверка.

1101 2 =2 3 +2 2 +1=13 10

1010 2 =2 3 +2=10 10

Упражнение 3

Формулировка задания

Даны числа 111 (2) и 101 (2) . Найти произведение этих чисел.

Операция умножения сводится к многократному сдвигу и сложению

Пример

Проверка.

111 2 =2 2 +2+1=7 10

101 2 =2 2 +1=5 10

100011 2 =2 5 +2+1=32+3=35 10 =7*5.

Построение таблиц истинности для логических формул

Цель работы

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

Задание

Выполните упражнение 1. Перед выполнением упражнения изучите материал по теме из подразделов 2.1.4, 2.1.5 , 2.1.6, 2.1.7 .

Упражнение 1

Формулировка задания



Дана логическая формула . Построить таблицу истинности для данной формулы.

Решение :

1. Расставляем приоритеты выполнения операций:

1) – операция отрицания высказывания В . Результат выполнения операции присваиваем переменной .

2) – операция логического умножения (конъюнкция) высказываний и . Результат выполнения операции присваиваем переменной .

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

2. Строим таблицу, состоящую из пяти столбцов:

Исходные данные Х Y F
A B

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

3. Исходные данные таблицы заполняем возможными комбинациями значений высказываний А и В (первый вариант – когда оба высказывания истинны; второй и третий варианты – когда одно из высказываний истинно, а другое ложно; четвертый вариант – когда оба высказывания ложны).

5. Заполняем значениями столбец с именем Y . Для этого по таблице истинности основных логических операций определяем значение операции конъюнкции Y =0 (при А =1 и Х =0) и т.д.

Основы алгоритмизации и программирования

Цель работы

· Уметь выполнять словесный алгоритм.

· Научиться представлять алгоритмы решений простейших задач в виде блок-схем и писать по ним программы.

Примечание

Студент должен выполнить задание в двух вариантах:

· Выполнить словесный алгоритм и записать его результат.

· Представить словесный алгоритм в виде блок-схемы и программы. Ввести программу, запустить её, получить результат.

Задание

Выполнить упражнение 1. Перед выполнением упражнения изучите материал по теме.

Упражнение 1

Линейный алгоритм

Формулировка задания

2) Составить блок-схему и написать программу по заданному алгоритму.

Словесный алгоритм

В результате работы линейного алгоритма:

найти значение переменных: k, n, m.

Решение :

1) Словесный алгоритм выполняется последовательно.

· Значение k = 8 подставляется в m =k+2=10.

· Значение k = 8, m =10 подставляется в n =k+m =18.

· Вычисляется новое k = n – 2 * k =18 – 2 * 8 = 2.

· Вычисляется новое m:=k+n=2+18=20.

В результате работы линейного алгоритма значение переменных равны:

n=18, k=2, m=20.

2) Блок-схема алгоритма задачи представлена на рисунке19.

Программа алгоритма, представленного на рисунке19.

k, m, n: integer;

Writeln (‘ввести k’); {На экран выводится подсказка – текст в скобках}

Readln (k); {Ввод с клавиатуры переменной k}

Writeln (‘k=’, k,’ n=’, n,’ m=’, m); {Вывод переменных k, n, m}

В фигурных скобках даются пояснения (комментарии) к операторам.

В блок-схеме, представленной на рисунке 20, значение переменной k вводится с клавиатуры. Поэтому в программе этому блоку соответствует оператор ввода, что позволяет ввести с клавиатуры любое значение переменной k.

Вывод

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

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

· Блоку 1 соответствует слово BEGIN(начало).

· Блоку 2 соответствует оператор ввода Readln (k).

· Блоки 3¸6 переписываются с рисунка 20.

· Блоку 7 соответствует оператор вывода Writeln (‘k=’, k,’ n=’, n,’ m=’, m).

· Блоку 8 соответствует слово END(конец программы).

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

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

Рисунок 20 - Блок-схема линейного алгоритма

Упражнение 2

Разветвляющийся алгоритм

Формулировка задания

1) Выполнить словесный алгоритм. Записать результат.

Словесный алгоритм

Задан фрагмент алгоритма:

если W > R, то R=W+R, иначе W=R-W.

В результате выполнения данного алгоритма с начальными значениями: W=-7, R=55

на экран будет выведено: W R

Решение :

1) Для начальных значений: W=-7, R=55 условие W > R не выполняется. В этом случае выполняется вторая ветка W=R-W=55+7=62.

В результате работы алгоритма значение переменных равны: W=62, R=55.

2) Блок-схема словесного алгоритма представлена на рисунке 21.

На рисунке 21 появился новый блок 3, в котором проверяется условие. Блок проверки условия образует ветвление по двум направлениям в алгоритме.

В блок-схеме видно, что в зависимости от условия w>r выполняется одна из веток алгоритма. Затем выводится результат вычисления.


Рисунок 21 - Алгоритм ветвления

· Блоку 2 соответствует оператор ввода Readln (w, r).

· Блоку 3 соответствует оператор условия if w > r then w:= w + r else r:=r-w.

· Блоку 4 соответствует оператор присваивания w = w+r.

· Блоку 5 соответствует оператор присваивания r=r-w.

· Блоку 6 соответствует оператор вывода Writeln (’ w =’, w, ’ r =’, r).

Программа алгоритма ветвления, представленного на рисунке 21.

Writeln (‘ввести w, r’); {На экран выводится подсказка – текст в скобках}

Readln (w, r); {Ввод с клавиатуры переменных w, r }

if w > r then

Writeln (’ w =’, w, ’ r =’, r); {Вывод результата}

Упражнение 3

Алгоритмы. Циклы

Формулировка задания

1) Выполнить словесный алгоритм. Записать результат.

2) Составить блок-схему и написать программу по алгоритму.

Пример1

Циклический алгоритм со счётчиком циклов задан в виде словесного описания.

Начало цикла для i от 1 до 3

конец цикла; Вывод d, s.

Решение :

1) В алгоритме указан диапазон изменения счётчика i, где видно, что должно быть выполнено три цикла.

· После выполнения первого цикла значения переменных равны d=2, s=2.

· Полученные значения подставляются во втором цикле.

· После выполнения второго цикла значения переменных равны d=4, s=6.

· Полученные значения во втором цикле подставляются при выполнении третьего цикла.

· В результате выполнения алгоритма значение переменных равны: d=8, s=14.

2) Блок-схема словесного алгоритма цикла со счётчиком представлена на рисунке 22.

Рисунок 22 - Алгоритм цикла со счётчиком

· Блоку 1 соответствует служебное слово BEGIN.

· Блоку 2 соответствует оператор ввода readln (n).

· Блоку 3 соответствуют операторы присваивания s:=0; d:=1;

· Блоку 4 соответствует оператор цикла со счётчиком for i:=1 to n do.

· Блоку 5 соответствуют операторы присваивания d: =2 * d; s: =s + d;

· Блоку 6 соответствует оператор вывода Writeln (‘d= ’, d, ‘s = ’, s);

· Блоку 7 соответствует служебное слово END.

Программа алгоритма цикла со счётчиком, представленного на рисунке 22.

s, d, i, n:integer;

writeln (‘ввести количество циклов-n’);

for i:=1 to n do {оператор цикла с параметрами}

Writeln (‘ d= ’, d, ‘ s = ’, s);

End; {конец оператора цикла}

Пример 2

Циклический алгоритм с предусловием задан в виде словесного описания.

Заданы начальные значения переменных:

Начало цикла. Пока y>x выполнить:

конец цикла;

Определить количество циклов k и значения переменной y после выхода из цикла.

Решение

1) Цикл выполняется до тех пор, пока выполняется условие y>x.

· Так как y=5, x=1, то условие y>x выполняется и значение y вычисляется по формуле y = y – x.

· В результате выполнения первого цикла y=4.

· Во втором цикле условие y>x выполняется, после второго цикла значение y=3.

· В третьем цикле условие y>x выполняется, после окончания третьего цикла значение y=2.

· В четвертом цикле условие y>x выполняется, после выполнения цикла значение y=1.

· При значениях y=1, x=1 условие y>x не выполняется, цикл не будет выполняться. Следовательно, цикл закончится и выполнится четыре цикла.

На выходе из цикла значения переменных будут равны: k=4, y=1, x=1.

2) Программа алгоритма цикла с предусловием, представленного на рисунке 12.

k, x, y: integer;

writeln (‘ ввести x, y ’);

while y>x do {оператор цикла с предусловием}

writeln (‘ k=’, k , ‘ y= ’ , y);

end; {конец оператора цикла с предусловием }

В программе до выполнения цикла не задано начальное значение k. По умолчанию оно равно нулю.

В примере используется оператор цикла с предусловием, который в данном примере выполняется при условии y>x. Условие проверяется при входе в цикл. В теле цикла счётчик задан в виде оператора присваивания k:=k+1, который выдаёт количество выполненных циклов.

Пример3

Циклический алгоритм примера 2 переписать, используя оператор цикла с постусловием. Результат будет тот же.

Программа алгоритма цикла с постусловием, представленного на рисунке 13.

k, x, y: integer;

writeln (‘ввести x, y , ’);

repeat {оператор цикла с постусловием}

readln (‘ k=’ , k , ‘ y= ’, y);

until y<=x; {конец оператора цикла с постусловием }

Упражнение 4

Одномерные массивы

Пример 1

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

Решение

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

Программа поиска максимального элемента одномерного массива и его номера:

х: array of integer;

k, max, n, i: integer;

Writeln (‘ввести количество элементов массива n’);

for i:=1 to n do

readln (х[i]); {ввод элементов массива }

for i:=1 to n do

if х[i]>max then

writeln(’ max = ’ , max , ’ k =’ , k);

Блок-схема алгоритма поиска максимального элемента одномерного массива и его номера представлена на рисунке 23.

Блок 2 - ввод количества элементов одномерного массива.

Блок 3 - начало цикла, в котором будут вводиться элементы одномерного массива.

Блок 4 - ввод элементов одномерного массива в цикле.

Блок 5 – значение первого элемента одномерного массива присваивается максимальному элементу.

Блок 6 - начало цикла, в котором в блоке 7 проверяется условие максимального элемента одномерного массива и в блоке 8 фиксируется значение и номер максимального элемента одномерного массива.

В блоке 9 - выводится максимальный элемент одномерного массива и его номер.

Рисунок 23 - Алгоритм поиска максимального элемента одномерного массива и его номера

Двумерные массивы

Пример 2

Для двумерного массива, состоящего из N строк и М столбцов, найти сумму элементов 3-столбца.

Решение

Таблица идентификаторов

Программа поиска суммы элементов 3-столбца двумерного массива:

a: array[ 1.. 10, 1..10] of integer;

s, i, j, n, m:integer;

writeln(’ввести количество строк- n и столбцов-m’);

for i:=l to n do

for j:=l to m do

writeln(’ ввести элемент массива a[ ’, i , ’ , ’ , j , ’ ]= ’);

readln (a,); {ввод элемента массива}

writeln(a); {вывод элемента массива}

for i:=1 to n do

s:=s+a[ i, 3]; {сумма элементов 3 столбца}

writeln(’s=’,s,);


Контрольная работа

Выполнить задания контрольной работы по темам:

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

2. Алгебра логики.

3. Алгоритмизация и программирование.

Тема урока: Арифметические операции в позиционных системах счисления.

9 класс

Задачи урока:

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

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

    Развивающая: развивать внимание, строгость мышления, умение рассуждать.

Структура урока.

    Оргмомент – 1 мин.

    Проверка домашнего задания с помощью устного теста – 15 мин.

    Домашнее задание – 2 мин.

    Решение задач с одновременным анализом и самостоятельной отработкой материала – 25 мин.

    Подведение итогов урока – 2 мин.

ХОД УРОКА

    Оргмомент.

    Проверка домашнего задания (устный тест) .

Учитель последовательно читает вопросы. Ученики внимательно слушают вопрос, не записывая его. Записывается только ответ, причём очень коротко. (Если можно ответить одним словом, то записывается только это слово).

    Что такое система счисления? (- это знаковая система, в которой числа записываются по определенным правилам с помощью знаков некоторого алфавита, называемого цифрами )

    Какие системы счисления вы знаете? ( непозиционные и позиционные )

    Какая система называется непозиционной? (ССЧ называется непозиционной, если количественный эквивалент (количественное значение) цифры в числе не зависит от её положения в записи числа ).

    Чему равно основание позиционной ССЧ. (равно количеству цифр, составляющих ее алфавит )

    Каким математическим действием надо воспользоваться, чтобы перевести целое число из десятичной ССЧ в любую другую? (Делением )

    Что нужно сделать, чтобы перевести число из десятичной ССЧ в двоичную? (Последовательно делить на 2 )

    Во сколько раз уменьшится число 11,1 2 при переносе запятой на один знак влево? (в 2 раза )

А теперь послушаем стих про необыкновенную девочку и ответим на вопросы. (Звучит стих )

НЕОБЫКНОВЕННАЯ ДЕВОЧКА

Ей было тысяча сто лет,
Она в сто первый класс ходила,
В портфеле по сто книг носила.
Все это правда, а не бред.

Когда, пыля десятком ног,
Она шагала по дороге.
За ней всегда бежал щенок
С одним хвостом, зато стоногий.

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

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

/ Н. Стариков /

И сколько же лет было девочке? (12 лет ) В какой она класс ходила? (5 класс ) Сколько у нее рук и ног было? (2 руки, 2 ноги ) Откуда у щенка 100 ног? (4 лапы )

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

Критерий:

    10 правильных ответов (можно небольшой недочёт) – “5”;

    9 или 8 – “4”;

    7, 6 – “3”;

    остальные – “2”.

II. Задание на дом (2 мин)

10111 2 - 1011 2 = ? ( 1100 2 )
10111 2 + 1011 2 = ? ( 100010 2 )
10111 2 * 1011 2 = ? ( 11111101 2 ))

III. Работа с новым материалом

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

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

0

1

1

1

Сложение.

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

1001 + 1010 = 10011

1101 + 1011 = 11000

11111 + 1 = 100000

1010011,111 + 11001,11 = 1101101,101

10111 2 + 1001 2 = ? (100000 2 )

Вычитание.

При выполнении операции вычитания всегда из большего по абсолютной величине числа вычитается меньшее, и ставится соответствующий знак. В таблице вычитания 1 с чертой означает заем в старшем разряде. 10111001,1 – 10001101,1 = 101100,0

101011111 – 110101101 = – 1001110

100000 2 - 10111 2 = ? (1001 2 )

Умножение

Операция умножения выполняется с использованием таблицы умножения по обычной схеме, применяемой в десятичной системе счисления с последовательным умножением множимого на очередную цифру множителя. 11001 * 1101 = 101000101

11001,01 * 11,01 = 1010010,0001

Умножение сводится к сдвигам множимого и сложениям.

111 2 * 11 2 = ? (10101 2 )

V. Подведение итогов урока

Карточка для дополнительной работы учащихся.

Выполните арифметические операции:

А) 1110 2 + 1001 2 = ? (10111 2 ); 1101 2 + 110 2 = ? (10011 2 );

10101 2 + 1101 2 = ? (100010 2 ); 1011 2 + 101 2 = ? (10000 2 );

101 2 + 11 2 = ? (1000 2 ); 1101 2 + 111 2 = ? (10100 2 );

Б) 1110 2 - 1001 2 = ? (101); 10011 2 - 101 2 = ? (1110 2 );

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

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

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

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

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

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

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

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

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

Разделы: Информатика

Цель : научитьучащихся выполнять арифметические действиями в двоичной системе счисления.
Задачи:
образовательные:
- повторение и закрепление знаний учащихся о системах счисления;
- формировать у школьников умение выполнять правильно арифметические действия в двоичной системе счисления;
развивающие:
- развивать логическое мышление учащихся;
- развивать познавательный интерес учеников.

Ход урока.

Изучение нового материала.
Правила сложения:
0+0=0
0+1=1
1+0=1
1+1=10
Обратить внимание учащихся на то, что при сложении двух единиц в двоичной системе счисления в записи получается 0, а единица переносится в следующий разряд. При сложении трех единиц получается в записи 1, и единица переносится в следующий разряд. (1+1+1=11).

Пример 1.
101+10=111

Пример 2.
10011+11=1110


1001+11=1100
110+110=1100

Правила умножения:
0*0=0
0*1=0
1*0=0
1*1=1

Пример 1.
101*11=1111

Объяснение:
Каждую цифру второго множителя умножаем на каждую цифру первого множителя, результаты произведений складывают между собой по правилам сложения в двоичной системе счисления. (Математика - 3 класс).

Пример 2.
1011*101=110111

Решение:

Учащиеся самостоятельно решают следующие примеры:
1001*101=101101
1001*11=11011

Правила вычитания:
0-0=0
1-0=1
1-1=0
0-1=-1
Обратить внимание учащихся на то, что «минус» в последнем правиле обозначает – «занять разряд (1)».

Пример 1.
10110-111=1111

Объяснение:
Вычитание выполняется так же, как в математике. Если цифра в уменьшаемом меньше цифры вычитаемого, то для данного вычитания необходимо занять разряд (1), т.к. 10-1=1. Если слева от такого вычитания стоит 0, то мы не можем занять разряд. В этом случае разряд занимаем в уменьшаемом у близстоящей слева от данного вычитания единицы. При этом все нули, у которых мы не могли занять разряд, необходимо поменять на единицу, т.к. 0-1=-1. Желательно все изменения в цифрах записывать сверху данного вычитания. Дальнейшее вычитание выполнять с получившимися сверху цифрами.

Пример 2.
100000-11=11101

Учащиеся самостоятельно решают следующие примеры:
100010-100=
101011-10111=

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

Пример 1.
101101:1001=101

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

Пример 2.
101010:111=110

Примеры для самостоятельного решения:
1001000:1000=1001
111100:1010=110

Домашнее задание.
Выполнить действия:
1100+1101=
101+101=
1011*101=
111*101=
11011-110=
10001-1110=
1011010:1010=