Практикум по дисциплине Архитектура и организация компьютерных систем Форма обучения очная
Скачать 1.85 Mb.
|
Лабораторная работа №2 (1 часа) Тема: Перевод целых и дробных чисел между различными системами счисления, выполнение арифметических операций над двоичными числами. Цель: Научиться выполнять перевод произвольных чисел между различными системами счисления. Задание: Научиться выполнять перевод целых чисел между произвольными системами счисления. Научиться выполнять перевод дробных чисел между произвольными системами счисления. Теоретические сведения Система счисления - принятый способ записи чисел при помощи ограниченного числа символов (цифр) и сопоставления этим записям реальных значений. Все системы счисления можно разделить на два класса: позиционные и непозиционные. Для записи чисел в различных системах счисления используется некоторое количество отличных друг от друга знаков. Число таких знаков в позиционной системе счисления называется основанием системы счисления. Ниже приведена таблица 2.1, содержащая наименования некоторых позиционных систем счисления и перечень знаков (цифр), из которых образуются в них числа. Таблица 2.1. Некоторые системы счисления
В позиционной системе счисления число может быть представлено в виде суммы произведений коэффициентов на степени основания системы счисления: АnАn-1Аn-2 ... A1A0,A-1A-2... = = Аn*Bn + Аn-1*Bn-1+ Аn-2*Bn-2+ ...+ A1*B1 + A0*B0 +,A-1 *B-1 + A-2 *B-2 +... (знак «запятая» отделяет целую часть числа от дробной; знак «звездочка» здесь и ниже используется для обозначения операции умножения). Таким образом, значение каждого знака в числе зависит от позиции, которую занимает знак в записи числа. Т.е., позиционной системой счисления называется система счисления, при которой число, связанное с цифрой, зависит от места, которое она занимает. При работе с компьютерами приходится параллельно использовать несколько позиционных систем счисления (чаще всего двоичную, десятичную и шестнадцатеричную), поэтому большое практическое значение имеют процедуры перевода чисел из одной системы счисления в другую. Заметим, что во всех приведенных выше примерах результат является десятичным числом, и, таким образом, способ перевода чисел из любой позиционной системы счисления в десятичную уже продемонстрирован. Отметим, что кроме рассмотренных выше позиционных систем счисления существуют такие, в которых значение знака не зависит оттого места, которое он занимает в числе. Такие системы счисления называются непозиционными. Наиболее известным примером непозиционной системы является римская. В этой системе используется 7 знаков (I, V, X, L, С, D, М), которые соответствуют следующим величинам: I(1) V(5) X(10) L(50) С(100) D(500) М(1000) Недостатком непозиционных систем, из-за которых они представляют лишь исторический интерес, является отсутствие формальных правил записи чисел и, соответственно, арифметических действий над ними (хотя по традиции римскими числами часто пользуются при нумерации глав в книгах, веков в истории и др.). При переводе чисел из десятичной системы счисления в систему с основанием Р>1 обычно используют следующий алгоритм: если переводиться целая часть числа, то она делится на Р, после чего запоминается остаток от деления. Полученное частное вновь делится на Р, остаток запоминается. Процедура продолжается до тех пор, пока частное не станет равным нулю. Остаток от деления на Р выписываются в порядке, обратном их получению; если переводится дробная часть числа, то она умножается на Р, после чего целая часть запоминается и отбрасывается. Вновь полученная дробная часть умножается на Р и т.д. процедура продолжается до тех пор, пока дробная часть не станет равной нулю. Целые части выписываются после двоичной запятой в порядке их получения. Результатом может быть либо конечная, либо периодическая дробь. Поэтому, когда дробь является периодической, приходится обрывать умножение на каком-то шаге и довольствоваться приближенной записью исходного числа в системе с основанием Р. Если необходимо перевести число из двоичной системы счисления в систему счисления, основанием которой является степень двойки, достаточно объединить цифры двоичного числа в группы по столько цифр, каков показатель степени, и использовать приведенный ниже алгоритм. Например, если перевод осуществляется в восьмеричную систему, то группы будут содержать три цифры (8=23). В целой части числа группировка производится справа налево, в дробной части – слева направо. Если в последней группе недостает цифр, дописывают нули: в целой части – слева, в дробной – справа. Затем каждая группа заменяется соответствующей цифрой новой системы. Соответствия приведены в таблице:
При переводе чисел из системы счисления с основанием Pв десятичную систему счисления необходимо пронумеровать разряды целой части справа налево, начиная с нулевого, и дробной части, начиная с разряда сразу после запятой, слева направо (начальный номер -1). Затем вычислить сумму произведений соответствующих значений разрядов на основание системы счисления в степень, равной номеру разряда. Это и есть представление исходного числа в десятичной системе счисления. Контрольный пример Задание 1: Переведите число 380,1875(10) из десятичной системы счисления в двоичную. Решение:
Ответ: 380,1875(10)=101111100,0011(2); Задание 2: Переведите из двоичной системы счисления в шестнадцатеричную число 1111010101,11(2). Решение: Воспользуемся таблицей соответствия. 0011(2) = 3(16), 1101(2) = D(16), 0101(2) = 5(16) и 1100(2) = С(16). Тогда получается, что 1111010101,11(2)=3D5,C(16). Ответ: 3D5,C(16). Задание 3: Переведите число 1216,04(8) в десятичную систему счисления. Решение: 1216,04(8) = 1×83+2×82+1×81+6×80+4×8-1 = 512+128+8+6+0,0625 = 654,0625(10). Ответ: 654,0625(10); Задания для самостоятельного выполнения Задание 1: Переведите число 456,75(10) из десятичной системы счисления в двоичную. Задание 2: Переведите число 1111,0111 из двоичной системы счисления в шестнадцатеричное число. Задание 3: Переведите число 1016,04(8) в десятичную систему счисления. Задание 4: Переведите число 15456(10) в шестнадцатеричную систему счисления. Задание 5: Переведите число AD,8(16) в десятичную систему счисления. Задание 6: Переведите число A0D,8(16) в десятичную систему счисления. Задание 7: Переведите число 354,66(8) в десятичную систему счисления. Задание 8: Переведите число 1234,56(10) в двоичную систему счисления. Задание 9: Переведите число 234,478(10) в восьмеричную систему счисления. Задание 10: Переведите число 234,478(10) в шестнадцатеричную систему счисления. Задание 11: Переведите число 5689(10) в восьмеричную систему счисления. Задание 12: Переведите число 465(10) в двоичную систему счисления. Задание 13: Переведите число 7541(16) в десятичную систему счисления. Задание 14: Переведите число 234,47(8) в десятичную систему счисления. Задание 15: Переведите число 25AB(16) в десятичную систему счисления. Лабораторная работа №3 (1 часа) Тема: Перевод целых и дробных чисел между различными системами счисления, выполнение арифметических операций над двоичными числами. Цель: Освоить основные арифметические операции над двоичными числами. Задание: Научиться выполнять операции сложения и вычитания двоичных чисел. Проанализировать результаты операций поразрядного сдвига над двоичными числами. Теоретические сведения Правила выполнения арифметических операций с двоичными числами отличаются большой простотой. Сложение двоичных чисел проводится в соответствии со следующими правилами: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 и 1 переносится в следующий, старший разряд. Вычитание выполняется по следующим правилам: 0 – 0 = 0 10 – 1 = 1 (единица занимается из соседнего, старшего разряда) 1 – 0 = 1 1 – 1 = 0 Таблица умножения имеет очень простой вид: 0 × 0 = 0 0 × 1 = 0 1 × 0 = 0 1 × 1 = 1 Деление чисел в двоичной системе похоже на выполнение этой операции в десятичной системе. Оно сводится к последовательному вычитанию делителя из делимого. Вы видите, что арифметические действия с двоичными числами выполняются очень легко, поэтому работа компьютера и основана на двоичном кодировании. Для выполнения арифметических операций в системе счисления с основанием Р необходимо иметь соответствующие таблицы сложения и умножения.
|