Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лекция 4. Арифметические основы компьютеров
Лекция 4. Арифметические основы компьютеров Что такое система счисления?
Существуют позиционные и непозиционные системы счисления. В непозиционных системах вес цифры (т.е. тот вклад, который она вносит в значение числа) не зависит от ее позиции в записи числа. Так, в римской системе счисления в числе ХХХII (тридцать два) вес цифры Х в любой позиции равен просто десяти. В позиционных системах счисления вес каждой цифры изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число. Например, в числе 757,7 первая семерка означает 7 сотен, вторая – 7 единиц, а третья – 7 десятых долей единицы. Сама же запись числа 757,7 означает сокращенную запись выражения 700 + 50 + 7 + 0,7 = 7•102 + 5•101 + 7•100 + 7•10-1 = 757,7. Любая позиционная система счисления характеризуется своим основанием.
За основание системы можно принять любое натуральное число — два, три, четыре и т.д. Следовательно, возможно бесчисленное множество позиционных систем: двоичная, троичная, четверичная и т.д. Запись чисел в каждой из систем счисления с основанием q означает сокращенную запись выражения an-1 qn-1 + an-2 qn-2+... + a1 q1 + a0 q0 + a-1 q-1 +... + a-m q-m, где ai – цифры системы счисления; n и m – число целых и дробных разрядов, соответственно. Например:
Как порождаются целые числа в позиционных системах счисления? В каждой системе счисления цифры упорядочены в соответствии с их значениями: 1 больше 0, 2 больше 1 и т.д.
Продвинуть цифру 1 значит заменить её на 2, продвинуть цифру 2 значит заменить её на 3 и т.д. Продвижение старшей цифры (например, цифры 9 в десятичной системе) означает замену её на 0. В двоичной системе, использующей только две цифры – 0 и 1, продвижение 0 означает замену его на 1, а продвижение 1 – замену её на 0. Целые числа в любой системе счисления порождаются с помощью Правила счета [44]:
Применяя это правило, запишем первые десять целых чисел
· в двоичной системе: 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001; · в троичной системе: 0, 1, 2, 10, 11, 12, 20, 21, 22, 100; · в пятеричной системе: 0, 1, 2, 3, 4, 10, 11, 12, 13, 14; · восьмеричной системе: 0, 1, 2, 3, 4, 5, 6, 7, 10, 11. Какие системы счисления используют специалисты для общения с компьютером? Кроме десятичной широко используются системы с основанием, являющимся целой степенью числа 2, а именно: · двоичная (используются цифры 0, 1); · восьмеричная (используются цифры 0, 1,..., 7); · шестнадцатеричная (для первых целых чисел от нуля до девяти используются цифры 0, 1,..., 9, а для следующих чисел — от десяти до пятнадцати – в качестве цифр используются символы A, B, C, D, E, F). Полезно запомнить запись в этих системах счисления первых двух десятков целых чисел:
Из всех систем счисления особенно проста и поэтому интересна для технической реализации в компьютерах двоичная система счисления. Как перевести целое число из десятичной системы в любую другую позиционную систему счисления?
Пример: Перевести число 75 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную: Ответ: 7510 = 1 001 0112 = 1138 = 4B16. Сложение Таблицы сложения легко составить, используя Правило Счета.
Сложение в шестнадцатиричной системе
При сложении цифры суммируются по разрядам, и если при этом возникает избыток, то он переносится влево. Пример 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. Проверка. Преобразуем полученные частные к десятичному виду: Сложение и вычитание
При сложении обратных кодов чисел А и В имеют место четыре основных и два особых случая: 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. Деление для компьютера является трудной операцией. Обычно оно реализуется путем многократного прибавления к делимому дополнительного кода делителя. Сложение и вычитание При сложении и вычитании сначала производится подготовительная операция, называемая выравниванием порядков.
В результате выравнивания порядков одноименные разряды чисел оказываются расположенными в соответствующих разрядах обоих регистров, после чего мантиссы складываются или вычитаются. В случае необходимости полученный результат нормализуется путем сдвига мантиссы результата влево. После каждого сдвига влево порядок результата уменьшается на единицу. Пример 1. Сложить двоичные нормализованные числа 0.10111•2–1 и 0.11011*210. Разность порядков слагаемых здесь равна трем, поэтому перед сложением мантисса первого числа сдвигается на три разряда вправо:
Пример 2. Выполнить вычитание двоичных нормализованных чисел 0.10101*210 и 0.11101*21. Разность порядков уменьшаемого и вычитаемого здесь равна единице, поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо:
Результат получился не нормализованным, поэтому его мантисса сдвигается влево на два разряда с соответствующим уменьшением порядка на две единицы: 0.1101*20.
Умножение
Пример 3. Выполнить умножение двоичных нормализованных чисел: (0.11101*2101)*(0.1001*211) = (0.11101*0.1001)* 2(101+11) = 0.100000101*21000. Деление
Пример 4. Выполнить деление двоичных нормализованных чисел: 0.1111*2100: 0.101*211 = (0.1111: 0.101) * 2(100–11) = 1.1*21 = 0.11•210. Использование представления чисел с плавающей точкой существенно усложняет схему арифметико-логического устройства. Упражнения 4.1. Используя Правило Счета, запишите первые 20 целых чисел в десятичной, двоичной, троичной, пятеричной и восьмеричной системах счисления. 4.2. Какие целые числа следуют за числами:
4.3. Какие целые числа предшествуют числам:
4.4. Какой цифрой заканчивается четное двоичное число? Какой цифрой заканчивается нечетное двоичное число? Какими цифрами может заканчиваться четное троичное число? 4.5. Какое наибольшее десятичное число можно записать тремя цифрами: o а) в двоичной системе; o б) в восьмеричной системе; o в) в шестнадцатеричной системе? [ Ответ ] 4.6. В какой системе счисления 21 + 24 = 100? Решение. Пусть x — искомое основание системы счисления. Тогда 100x = 1 · x2 + 0 · x1 + 0 · x0, 21x = 2 · x1 + 1 · x0, 24x = 2 · x1 + 4 · x0. Таким образом, x2 = 2x + 2x + 5 или x2 - 4x - 5 = 0. Положительным корнем этого квадратного уравнения является x = 5. 4.7. В какой системе счисления справедливо следующее: o а) 20 + 25 = 100; o б) 22 + 44 = 110? [ Ответ ] 4.8. Десятичное число 59 эквивалентно числу 214 в некоторой другой системе счисления. Найдите основание этой системы. 4.9. Переведите числа в десятичную систему, а затем проверьте результаты, выполнив обратные переводы:
4.10. Переведите числа из десятичной системы в двоичную, восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы: а) 12510; б) 22910; в) 8810; г) 37,2510; д) 206,12510. 4.11. Переведите числа из двоичной системы в восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:
4.12. Переведите в двоичную и восьмеричную системы шестнадцатеричные числа: а) 2СE16; б) 9F4016; в) ABCDE16; г) 1010,10116; д) 1ABC,9D16. 4.13. Выпишите целые числа: o а) от 1011012 до 1100002 в двоичной системе; o б) от 2023 до 10003 в троичной системе; o в) от 148 до 208 в восьмеричной системе; o г) от 2816 до 3016 в шестнадцатеричной системе. [ Ответ ] 4.14. Для десятичных чисел 47 и 79 выполните цепочку переводов из одной системы счисления в другую:
4.15. Составьте таблицы сложения однозначных чисел в троичной и пятеричной системах счисления. 4.16. Составьте таблицы умножения однозначных чисел в троичной и пятеричной системах счисления. 4.17. Сложите числа, а затем проверьте результаты, выполнив соответствующие десятичные сложения:
4.18. В каких системах счисления выполнены следующие сложения? Найдите основания каждой системы:
4.19. Найдите те подстановки десятичных цифр вместо букв, которые делают правильными выписанные результаты (разные цифры замещаются разными буквами):
4.20. Вычтите:
4.21. Перемножьте числа, а затем проверьте результаты, выполнив соответствующие десятичные умножения:
4.22. Разделите 100101102 на 10102 и проверьте результат, умножая делитель на частное. 4.23. Разделите 100110101002 на 11002 и затем выполните соответствующее десятичное и восьмеричное деление. 4.24. Вычислите значения выражений: o а) 2568 + 10110,12 * (608 + 1210) - 1F16; o б) 1AD16 - 1001011002: 10102 + 2178; o в) 101010 + (10616 - 110111012) 128; o г) 10112 * 11002: 148 + (1000002 - 408). [ Ответ ] 4.25. Расположите следующие числа в порядке возрастания: o а) 748, 1100102, 7010, 3816; o б) 6E16, 1428, 11010012, 10010; o в) 7778, 1011111112, 2FF16, 50010; o г) 10010, 11000002, 6016, 1418. [ Ответ ] 4.26. Запишите уменьшающийся ряд чисел +3, +2,..., -3 в однобайтовом формате: o а) в прямом коде; o б) в обратном коде; o в) в дополнительном коде. [ Ответ ] 4.27. Запишите числа в прямом коде (формат 1 байт): а) 31; б) -63; в) 65; г) -128. 4.28. Запишите числа в обратном и дополнительном кодах (формат 1 байт): а) -9; б) -15; в) -127; г) -128. 4.29. Найдите десятичные представления чисел, записанных в дополнительном коде: а) 1 1111000; б) 1 0011011; в) 1 1101001; г) 1 0000000. 4.30. Найдите десятичные представления чисел, записанных в обратном коде: а) 1 1101000; б) 1 0011111; в) 1 0101011; г) 1 0000000. 4.31. Выполните вычитания чисел путем сложения их обратных (дополнительных) кодов в формате 1 байт. Укажите, в каких случаях имеет место переполнение разрядной сетки:
Лекция 4. Арифметические основы компьютеров
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-01-19; просмотров: 1097; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.203.58.132 (0.142 с.) |