|
Как производятся арифметические операции в позиционных системах счисления?Рассмотрим основные арифметические операции: сложение, вычитание, умножение и деление. Правила выполнения этих операций в десятичной системе хорошо известны — это сложение, вычитание, умножение столбиком и деление углом. Эти правила применимы и ко всем другим позиционным системам счисления. Только таблицами сложения и умножения надо пользоваться особыми для каждой системы. Сложение Таблицы сложения легко составить, используя Правило Счета.
Сложение в шестнадцатиричной системе
При сложении цифры суммируются по разрядам, и если при этом возникает избыток, то он переносится влево. Пример 1. Сложим числа 15 и 6 в различных системах счисления.
Пример 2. Сложим числа 15, 7 и 3.
Пример 3. Сложим числа 141,5 и 59,75. Ответ: 141,5 + 59,75 = 201,2510 = 11001001,012 = 311,28 = C9,416 Проверка. Преобразуем полученные суммы к десятичному виду: Вычитание Пример 4. Вычтем единицу из чисел 102, 108 и 1016 Пример 5. Вычтем единицу из чисел 1002, 1008 и 10016. Пример 6. Вычтем число 59,75 из числа 201,25. Ответ: 201,2510 – 59,7510 = 141,510 = 10001101,12 = 215,48 = 8D,816. Проверка. Преобразуем полученные разности к десятичному виду: Умножение Выполняя умножение многозначных чисел в различных позиционных системах счисления, можно использовать обычный алгоритм перемножения чисел в столбик, но при этом результаты перемножения и сложения однозначных чисел необходимо заимствовать из соответствующих рассматриваемой системе таблиц умножения и сложения.
Ввиду чрезвычайной простоты таблицы умножения в двоичной системе, умножение сводится лишь к сдвигам множимого и сложениям. Пример 7. Перемножим числа 5 и 6. Ответ: 5*6 = 3010 = 111102 = 368. Проверка. Преобразуем полученные произведения к десятичному виду: Пример 8. Перемножим числа 115 и 51. Ответ: 115*51 = 586510 = 10110111010012 = 133518. Проверка. Преобразуем полученные произведения к десятичному виду: Деление Деление в любой позиционной системе счисления производится по тем же правилам, как и деление углом в десятичной системе. В двоичной системе деление выполняется особенно просто, ведь очередная цифра частного может быть только нулем или единицей. Пример 9. Разделим число 30 на число 6.
Ответ: 30: 6 = 510 = 1012 = 58. Пример 10. Разделим число 5865 на число 115. Восьмеричная: 133518:1638 Ответ: 5865: 115 = 5110 = 1100112 = 638. Проверка. Преобразуем полученные частные к десятичному виду: Пример 11. Разделим число 35 на число 14. Восьмеричная: 438: 168 Ответ: 35: 14 = 2,510 = 10,12 = 2,48. Проверка. Преобразуем полученные частные к десятичному виду: Как представляются в компьютере целые числа? Целые числа могут представляться в компьютере со знаком или без знака. Целые числа без знака обычно занимают в памяти один или два байта и принимают в однобайтовом формате значения от 000000002 до 111111112, а в двубайтовом формате — от 00000000 000000002 до 11111111 111111112. Диапазоны значений целых чисел без знака
Примеры: а) число 7210 = 10010002 в однобайтовом формате: б) это же число в двубайтовом формате: в) число 65535 в двубайтовом формате: Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа. Знак “плюс” кодируется нулем, а “минус” — единицей. Диапазоны значений целых чисел со знаком
Рассмотрим особенности записи целых чисел со знаком на примере однобайтового формата, при котором для знака отводится один разряд, а для цифр абсолютной величины – семь разрядов.
Последние две формы применяются особенно широко, так как позволяют упростить конструкцию арифметико-логического устройства компьютера путем замены разнообразных арифметических операций операцией cложения. Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково — двоичными кодами с цифрой 0 в знаковом разряде. Например:
Отрицательные числа в прямом, обратном и дополнительном кодах имеют разное изображение. 1. Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа — двоичный код его абсолютной величины. Например:
2. Обратный код. Получается инвертированием всех цифр двоичного кода абсолютной величины числа, включая разряд знака: нули заменяются единицами, а единицы — нулями. Например:
3. Дополнительный код. Получается образованием обратного кода с последующим прибавлением единицы к его младшему разряду. Например:
Как компьютер выполняет арифметические действия над целыми числами? Сложение и вычитание
При сложении обратных кодов чисел А и В имеют место четыре основных и два особых случая: 1. А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю. Например: Получен правильный результат. 2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например: Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111 = –710. 3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например: Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы. 4. А и В отрицательные. Например: Полученный первоначально неправильный результат (обратный код числа –1110 вместо обратного кода числа –1010) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы. При переводе результата в прямой код биты цифровой части числа инвертируются: 1 0001010 = –1010. При сложении может возникнуть ситуация, когда старшие разряды результата операции не помещаются в отведенной для него области памяти. Такая ситуация называется переполнением разрядной сетки формата числа. Для обнаружения переполнения и оповещения о возникшей ошибке в компьютере используются специальные средства. Ниже приведены два возможных случая переполнения. 5. А и В положительные, сумма А+В больше, либо равна 2n–1, где n – количество разрядов формата чисел (для однобайтового формата n=8, 2n–1 = 27 = 128). Например: Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (16210 = 101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свидетельством переполнения разрядной сетки. 6. А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 2n–1. Например: Здесь знак суммы тоже не совпадает со знаками слагаемых, что свидетельствует о переполнении разрядной сетки. Все эти случаи имеют место и при сложении дополнительных кодов чисел: 1. А и В положительные. Здесь нет отличий от случая 1, рассмотренного для обратного кода. 2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например: Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвертируются и к младшему разряду прибавляется единица: 1 0000110 + 1 = 1 0000111 = –710. 3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например: Получен правильный результат. Единицу переноса из знакового разряда компьютер отбрасывает. 4. А и В отрицательные. Например: Получен правильный результат в дополнительном коде. Единицу переноса из знакового разряда компьютер отбрасывает. Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов. Сравнение рассмотренных форм кодирования целых чисел со знаком показывает: · на преобразование отрицательного числа в обратный код компьютер затрачивает меньше времени, чем на преобразование в дополнительный код, так как последнее состоит из двух шагов — образования обратного кода и прибавления единицы к его младшему разряду; · время выполнения сложения для дополнительных кодов чисел меньше, чем для их обратных кодов, потому что в таком сложении нет переноса единицы из знакового разряда в младший разряд результата. Умножение и деление Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число ноль. В процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции — окончательный результат. Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения. Для иллюстрации умножим 1100112 на 1011012. Деление для компьютера является трудной операцией. Обычно оно реализуется путем многократного прибавления к делимому дополнительного кода делителя. ![]() ![]() ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования... ![]() ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала... ![]() Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все... ![]() ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|