§28. Операции с целыми числами
Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, полный углубленный курс, 4 часа в неделю)
Главная | Информатика и информационно-коммуникационные технологии | Планирование уроков и материалы к урокам | 10 классы | Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, полный углубленный курс, 4 часа в неделю) | Арифметические и логические (битовые) операции. Маски
Содержание урока
§26. Особенности представления чисел в компьютере§27. Хранение в памяти целых чисел§28. Операции с целыми числамиСложение и вычитание
Умножение и деление
Сравнение
Поразрядные логические операции
Сдвиги
Вопросы и задания
Задачи
§29. Хранение в памяти вещественных чиселСложение и вычитание
Сложение и вычитание требуются не только для расчётов по формулам, но и для организации вычислений. Например, для того чтобы повторить какое-то действие R раз, используют переменную-счётчик, к которой после каждого выполнения этого действия прибавляют единицу, а затем результат сравнивают с R.
Вместо этого можно сразу записать в счётчик значение R и после каждого повторения вычитать из него единицу, пока не получится ноль 1.
1 Второй вариант более эффективен, потому что процессор автоматически сравнивает результат очередного действия с нулём.
Благодаря тому что отрицательные числа кодируются в дополнительном коде, при сложении можно не обращать внимания на знаки слагаемых, т. е. со знаковым разрядом обращаются точно так же, как и со всеми остальными.
Например, сложим числа 510 (0000 01012) и -910 (1111 01112), используя 8-разрядную двоичную арифметику.
Для расшифровки получившегося отрицательного числа применим к нему схему получения дополнительного кода: 1111 1100 —< 0000 01002 = 410. Таким образом, результат равен -410, что совпадает с правилами «обычной» арифметики.
При сложении двух чисел с одинаковыми знаками может случиться переполнение — сумма будет содержать слишком большое количество разрядов. Покажем, как это выглядит для положительных и отрицательных чисел.
Сложим десятичные числа 96 и 33. Их сумма 129 выходит за 8-битную сетку. Для того чтобы обнаружить переполнение, добавим к обоим слагаемым ещё один старший бит, совпадающий со знаковым (рис. 4.9).
Рис. 4.9
Знаковый разряд S результата равен 1, т. е. сумма получилась отрицательной, хотя оба слагаемых положительны! Процессор определяет переполнение, сравнивая биты S и S’: если они различны, то произошло переполнение и результат неверный (см.
рис. 4.9).То же самое получается, если сложить два достаточно больших по модулю отрицательных числа, например -96 и -33. Добавим к кодам обоих чисел один старший разряд, равный знаковому разряду (рис. 4.10).
Рис. 4.10
Получается, что в результате бит S = 0, хотя ответ должен быть отрицательным. Биты S’ и S не совпадают, это говорит о том, что произошло переполнение. Несложно проверить (сделайте это самостоятельно), что, если переполнения нет, значения битов S и S’ всегда одинаковы независимо от знаков слагаемых.
Сложение многоразрядных двоичных чисел в компьютере выполняет специальное устройство —
Следующая страница Умножение и деление
Cкачать материалы урока
5.
4. Выполнение операций сложения и вычитания в д-кодахОперации сложения и вычитания в Д-кодах выполняются над операндами по формальным правилам десятичной арифметики, описанным ранее:
1. При сложении двух положительных чисел перевод в дополнительный код исключается. В случае появления потетрадного переноса или результата больше 9 производится коррекция результата прибавлением 6.
2. Сложение отрицательных чисел выполняется аналогично сложению положительных с той лишь разницей, что результату присваивается отрицательный знак.
3. При вычитании чисел осуществляется предварительный перевод в дополнительный код, а затем сложение чисел.
Рассмотрим пример когда одно число отрицательное, а другое положительное:
1) Сложить два числа в коде Д1 A = -1000 0010 0101, B = 1001 0100 0110.
[A]l = 1. 0001 0111 0101
[B] = 0. 1001 0100 0110
1. 1010 1011 1011
+ 0110 0110 0110 поправки
[C] = 0. 0001 0010 0001
5.5. Умножение чисел в д-кодах
Выполнение операций умножения в Д-кодах принципиально производится по классической схеме. Умножение чисел сводится к последовательному суммированию частных произведений, полученных при умножении множимого на очередную цифру множителя. Так как каждая цифра множителя представляется тетрадой, то умножение сопровождается расшифровкой значения очередной тетрады множителя и сдвигом на 4 разряда сразу. Расшифровку можно осуществить разными способами. Простейшим примером является последовательное вычитание 1 из значения тетрады до получения 0 и соответственно прибавление множимого. Надо учитывать обязательно промежуточные переполнения.
Рассмотрим пример умножения двух чисел, представленных в коде Д1:
умножим X = 2510 = 0010 0101 на Y = 1210 = 0001 0010, частные произведения формируем в P. Анализ тетрад Y начинаем с младшей.
0010 0101 x 0001 0010 = 0011 0000 0000 = 30010
P 0000 0000 0000
+ X 0010 0101 0010 — 0001 = 0001 > 0, значит надо еще раз X + P
P 0000 0010 0101
+ X 0010 0101 0010 — 0001 = 0, конец анализа младшей тетрады.
P 0000 0100 1010
+ 0110 поправка
P 0000 0101 0000 сдвигаем X на 4 разряда влево и складываем с P, анализируя старшую тетраду Y.
P 0000 0101 0000
+ X 0010 0101 0000 0001 — 0001 = 0
P 0010 1010 0000
+ 0110 поправка
P 0011 0000 00002 = 30010 ответ.
5.6. Деление чисел в д-кодах
Деление десятичных чисел в Д-кодах выполняется методом последо-вательного вычитания делителя из делимого на первом шаге и из остатков — на последующих шагах. Вычитание на каждом шаге производится до тех пор, пока не получится отрицательный остаток. Каждый раз при получении положительного остатка добавляется 1 в специальный счетчик, где накапливается очередная цифра частного. Затем осуществляется сдвиг на 4 двоичных разряда и прибавление делителя до тех пор, пока не получится положительный остаток. Количество сложений (без последнего) является дополнением соответствующей цифры частного до 9, что заносится в счетчик очередной цифры частного.
Таким образом, процесс деления состоит из ряда последовательно чередующихся циклов сложения и вычитания со сдвигами. Знак частного получается как логическая сумма по модулю 2 знаков чисел.
Рассмотрим пример деления двух чисел, представленных в коде Д1:
X = 48 = 0100 1000, Y = 2 = 0000 0010, X:Y = 24 = 0010 0100 , в С1 — формируем старшую тетраду частного, а в С2 — младшую.
0100 1000 : 0010
— 0010
0010 > 0 С1 = С1 + 1 = 1
— 0010
0000 С1 = 1 + 1 = 2 = 0010
0010
-0010
+ 0010
0000 сдвигаем Y на 4 разряда (1 тетраду) вправо и выполняем те же действия:
0100 1000
— 0010
0110 >0 С2 = С2 + 1 = 1
— 0010
0100 > 0 С2 = 1 + 1 = 2
— 0010
0010 > 0 С2 = 2 + 1 = 3
— 0010
0000 С2 = 3 + 1 = 4 = 0100
Ответ С1 + С2 = 0010 0000 + 0000 0100 = 0010 0100 = 2410
Maths Genie • Сложение, вычитание, умножение и деление отрицательных чисел
Перейти к сложению и вычитанию отрицательных чисел
Перейти к умножению и делению отрицательных чисел
Чтобы складывать и вычитать отрицательные числа, мы можем использовать числовую прямую.
Когда мы складываем, мы двигаемся вправо, а когда вычитаем, мы двигаемся влево.
Пример 1:
-3 + 5
Первое число является отправной точкой. Начинаем с -3.
Мы добавляем, поэтому движемся вправо.
Перемещаемся на 5 делений вправо.
Пример 2:
-2 — 6
Первое число является отправной точкой. Начинаем с -2.
Мы вычитаем, поэтому движемся влево.
Перемещаемся на 6 делений влево.
-2 — 6 = -8
Пример 3:
-4 + -5
Первое число является отправной точкой. Начинаем с -4.
Мы добавляем, поэтому движемся вправо.
Сдвигаемся на -5 делений вправо (это значит, что смещаемся на 5 делений влево)
-4 + -5 = -9
Пример 4:
2 — -5
Первое число является отправной точкой. Начинаем в 2.
Мы вычитаем, поэтому движемся влево.
Перемещаемся на -5 делений влево (это означает, что мы перемещаемся на 5 делений вправо)
2 — -5 = 7
Попробуйте эти:
Когда мы умножаем отрицательные числа, мы используем правила: .
Положительный × Положительный = Положительный
Положительный × Отрицательный = Отрицательный
Отрицательный × Положительный = Отрицательный
Отрицательный × Отрицательный = Положительный
Правила умножения и деления отрицательных чисел одинаковы: .
Положительный ÷ Положительный = Положительный
Положительный ÷ Отрицательный = Отрицательный
Отрицательный ÷ Положительный = Отрицательный
Отрицательный ÷ Отрицательный = Положительный
Пример 5:
-6 × 2
6 × 2 = 12
Отрицательный × Положительный = Отрицательный
-6 × 2 = -12
Пример 6:
7 × -5
Положительный × Отрицательный = Отрицательный
7 × -5 = -35
Пример 7:
-9 × -4
9 × 4 = 36
Отрицательный × Отрицательный = Положительный.
-9 × -4 = 36
Попробуйте эти:
You are here: Home → Статьи → Целые числа В этой статье описаны лучшие методы обучения работе с целыми числами. Узнайте, как объяснить учащимся, почему работают различные правила. В конце вы найдете для загрузки два печатных информационных бюллетеня, в которых обобщаются правила сложения, вычитания, умножения и деления целых чисел. Дополнение
ВычитаниеУ вас есть несколько вариантов представления вычитания целых чисел. Лично я при вычитании положительного целого числа думаю о скачках на числовой строке, а при вычитании отрицательного целого числа («двойное отрицательное число») я меняю их на сложения.
В приведенном ниже видео показано, как использовать ТРИ из этих различных моделей для вычитания целых чисел: 1) модель числовой строки, 2) понятие разности и 3) счетчики. УмножениеСамый быстрый способ умножать отрицательные числа — это запомнить эти маленькие правила: отрицательный × отрицательный положительный отрицательный × положительный отрицательный Другими словами, если два целых числа имеют разные знаки, то произведение отрицательное, а в противном случае положительное. Но давайте также объясним, ПОЧЕМУ это работает именно так.
Деление целых чиселПравила деления отрицательных чисел соблюдаются, потому что деление — это операция, обратная умножению. Например, чему равно (−21) ÷ (−7) ? Назовем ответ на этот А. Итак, (−21) ÷ (−7) = A. Отсюда следует, что A × (−7) = (−21) Зная правила умножения, подходит только число 3. Итак, (−21) ÷ (−7) = 3. Вы можете сделать аналогичные случаи для (−21) ÷ 7 и 21 ÷ (−7). На самом деле математики использовали бы не конкретные числа вроде 21 и 7, а переменные. |