В позиционных системах счисления Сложение В двоичной системе: 0+0=0 0+1=1 1+0=1 1+1=10 При сложении цифры суммируются по разрядам, если при этом возникает избыток, то он переносится влево. Примеры: В двоичной системе: В восьмеричной системе: 11112 + 01102 178 + 68 111 1111 +0110 10101 1+0=1 1+1=2=2+0 1+1+1=3=2+1 1+1=2=2+0 1 17 + 6 7+6=13=8+5 25 1+1=2 Примеры Пример 1: F16 + 616 Пример 2: 11112 + 1112 + 112 Пример 3: 215,48 + 73,68 Вычитание В двоичной системе: 0-0=0 0-1=11 1-0=1 1-1=0 . При вычитании из меньшего числа большего производится заём из старшего разряда. Примеры В двоичной системе: В восьмеричной системе: 1002 - 12 311,28 – 73,68 11 100 1 111 311,2 73,6 215,4 8+2-6=4 11 2-1=1 1-0=1 8-3=5 8-7=1 3-1=1 Примеры Пример 1: 11001001,012 – 111011,112 Пример 2: C9,416 – 3B,C16 Умножение В двоичной системе: Пример 1: 0·0=0 0·1=0 1·0=0 1·1=1 101 · 110 000 + 101 101 1012 · 1102 11110 Пример 2: 11100112 · 1100112 Деление Пример 1: Пример 2: 110 - 11110 110 101 - 110 110 Пример 3: 111102 : 1102 0 10010112 : 1012 1000112 : 11102 Представление целых чисел в компьютере Со знаком Без знака Примеры: а) число 7210 = 10010002 в однобайтовом формате: Номера разрядов 0 1 2 3 4 5 6 7 0 1 0 0 1 0 0 0 Биты числа б) это же число в двубайтовом формате: Номера разрядов 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 Биты числа в) число 65535 в двубайтовом формате: Номера разрядов 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Биты числа Представление целых чисел в компьютере Без знака Со знаком Положительные числа Число 110=12 Число 12710=11111112 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 Знак числа "+" Знак числа "+" Отрицательные числа Число -110=100000012 Число -12710=111111112 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 Знак числа "-" Знак числа "-" Формы записи целых чисел со знаком 1. Прямой код. Прямой код числа -1 1 0 0 0 0 0 0 1 Знак числа "-" Прямой код числа -127 1 1 1 1 1 1 1 1 Знак числа "-" 2. Обратный код Число -1 Код модуля числа 0 0000001 Обратный код числа 1 1 1 1 1 1 1 0 Число -127 Код модуля числа 0 1111111 Обратный код числа 1 0 0 0 0 0 0 0 3. Дополнительный код. Число -1 1 1 1 1 1 1 1 1 Число -127 1 0 0 0 0 0 0 1 Получение дополнительного кода Получить дополнительный код можно по следующему алгоритму: 1) Записать внутреннее представление положительного числа X; Пример: -127 0 1 1 1 1 1 1 1 2) Записать обратный код этого числа заменой во всех разрядах 0 на 1 и 1 на 0; 1 0 0 0 0 0 0 0 3) К полученному числу прибавить 1. 1 0 0 0 0 0 0 1 Выполнение арифметических действий над целыми числами в компьютере. В большинстве компьютеров операция вычитания не используется. Вместо нее производится сложение обратных или дополнительных кодов уменьшаемого и вычитаемого. Сложение обратных и дополнительных кодов 1. А положительное, B отрицательное и по абсолютной величине больше, чем А. (Пример: 3+(-10)=-7) Обратный код: Дополнительный код: 0 0000011 + 1 1110101 1 1111000 + 01 0000011 1110110 1 1111001 2. А положительное, B отрицательное и по абсолютной величине меньше, чем А. (Пример: 10+(-3)=7) Обратный код: Дополнительный код: 0 0001010 + 1 1111100 1 0 0000110 +1 0 0000111 0 0001010 + 1 1111101 1 0 0000111 Сложение обратных и дополнительных кодов 3. А и В отрицательные. (Пример: Обратный код: 1 1111100 + 1 1111000 1 1 1110100 +1 1 1110101 (-3)+(-7)=-10) Дополнительный код: 1 1111101 + 1 1111001 1 1 1110110 Умножение и деление Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число ноль. В процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции — окончательный результат. Умножение и деление Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения. Умножение и деление Для иллюстрации умножим 010102 на 011012. 0000001010 0000000101 + 01101 . 0110100101 0011010010 + 0001101001 01101 . 1000001001 0100000100 0010000010 Умножение и деление Деление для компьютера является трудной операцией. Обычно оно реализуется путем многократного прибавления к делимому дополнительного кода делителя. Упражнения 1. Сложите числа а) 10111012 и 11101112; б) 1011,1012 и 101,0112; в) 10112, 112 и 111,12; г) 10112 , 11,12 и 1112; д) 378 и 758; е) 1658 и 378; ж) 7,58 и 14,68; з) 68, 178 и 78; 2. Вычтите а) 1112 из 101002; б) 10,112 из 100,12; в) 111,12 из 100102; г) 100012 из 1110,112; д) 158 из 208; е) 478 из 1028; ж) 56,78 из 1018; з) 16,548 из 30,018; Упражнения 3. Перемножьте числа а) 1011012 и 1012; б) 1111012 и 11,012; в) 1011,112 и 101,12; г) 1012 и 1111,0012; 4. Разделите 100101102 на 10102 и проверьте результат, умножая делитель на частное. Упражнения 5. Запишите уменьшающийся ряд чисел +3, +2, ..., -3 в однобайтовом формате в прямом, обратном и дополнительном коде. 6. Найдите десятичные представления чисел, записанных в дополнительном коде: а) 1 1111000; б) 1 0011011; в) 1 1101001; г) 1 0000000 7. Выполните вычитания чисел путем сложения их обратных (дополнительных) кодов в формате 1 байт. а) 9 - 2; б) 2 - 9; в) -5 - 7; г) -20 - 10; д) 50 - 25; е) 127 - 1; Упражнения 8. Представьте, что вы – компьютер. Перемножьте числа: а) 2 и 7 б) -3 и 15 в) 15 и 8