Лабораторные. Общие сведения из теории
Скачать 1.85 Mb.
|
3 Лабораторная работа №1: Системы счисления Цель работы Повторить и закрепить знания учащихся по способам представления чисел в позиционных системах счисления, переводу чисел из десятичной системы счисления в любую другую и обратно. Общие сведения из теории 1. Понятие и виды систем счисления Подсистемой счисления (СС) понимается способ представления любого числа посредством алфавита символов, называемых цифрами. По количеству символов, используемых для записи числа, системы счисления подразделяются на позиционные и непозиционные. Если для записи числа используется бесконечное множество символов и значение цифры не зависит от ее положения в ряду цифр, изображающих число, то система счисления называется непозиционной. Примером непозиционной системы счисления может служить римская СС. Цифры в римской системе обозначаются различными знаками 1 — I; 3 — III; 5 — V; 10 — X; 50 — L; 100 — СМ. Позиционные системы счисления для записи чисел используют ограниченный набор символов, называемых цифрами, и величина числа зависит не только от набора цифр, но и оттого, в какой последовательности записаны цифры, те. от позиции, занимаемой цифрой, например, 125 и 215. Количество цифр, используемых для записи числа, называется основанием системы счисления, в дальнейшем его обозначим q. В повседневной жизни мы пользуемся десятичной позиционной системой счисления, q = 10, те. используется 10 цифр 0123456 789. В ЭВМ применяют позиционные СС с недесятичным основанием двоичную, восьмеричную, шестнадцатеричную и др. В двоичной СС используется две цифры 0 и 1; восьмеричная СС имеет восемь цифр 01234567, шестнадцатеричная — шестнадцать, причем первые 10 цифр совпадают по написанию с цифрами десятичной системы счисления, а для обозначения оставшихся шести цифр применяются большие латинские буквы, те. для шестнадцатеричной системы счисления получим набор цифр 0123456789ABCDEF. 4 Табл. 1. Соответствие записи чисел в десятичной, восьмеричной и шестнадцатеричной системах счисления. Число в позиционной системе счисления с основанием q может быть представлено в виде полинома по степеням q. Например, в десятичной системе мы имеем число 123,45 = 1 • 10 2 + 2 • 10 1 + 3 • 10°+ 4 • 10- 1 + 5 • 10- 2 , а в общем виде это правило запишется так Здесь X (q) — запись числа в системе счисления с основанием q; х — натуральные числа меньше q, те. цифры n — число разрядов целой части m — число разрядов дробной части. Записывая слева направо цифры числа, мы получим закодированную запись числа в q-ичной системе счисления Запятая отделяет целую часть числа от дробной части. В ВТ чаще всего для отделения целой части числа от дробной части используют точку. Позиции цифр, отсчитываемые от точки, называют разрядами. В позиционной СС вес каждого разряда отличается отвеса соседнего разряда в число раз, равное основанию СС. В десятичной СС цифры го разряда — единицы, го — десятки, го — сотни и т. д. В ВТ применяют позиционные СС с недесятичным основанием двоичную, восьмеричную, шестнадцатеричную системы и др. Для обозначения используемой СС числа заключают в скобки и индексом указывают основание СС: (15) 10 ;(1011) 2 ;(735) 8 ; Иногда скобки опускают и оставляют только индекс 15 10 ; 1011 2 ;735 8 ; Есть еще один способ обозначения СС: при помощи латинских букв, добавляемых после числа. Например, 5 15D; 1011B;735Q; 1EA9FH. Двоичная ПСС получила самое широкое применение в ЭВМ благодаря следующим достоинствам 1. Числовая информация в ЭВМ отождествляется с состоянием используемых двоичных физических элементов. Историческое развитие ВТ сложилось на базе таким образом, что цифровые ЭВМ строятся на базе двоичных цифровых устройств (триггеров, регистров, счетчиков и т.п.) Например, транзистор может быть в открытом или закрытом состоянии, а следовательно, иметь на выходе высокое или низкое напряжение, лампочка включена или выключена, отверстия на перфокарте пробиты или нет. Очевидно, что реализация элементов, которые должны различать одно из двух состояний (0 или 1), оказывается проще и надежнее, чем реализация элементов, которые должны различать одно из 10 состояний. 2. Арифметические операции выполняются наиболее просто. В тоже время громоздкость записи чисел в двоичной ПСС и трудность их восприятия человеком приводит к необходимости перевода исходных данных чисел) из десятичной системы счисления в двоичную, а результатов — из двоичной в десятичную. Эти переводы осуществляются в ЭВМ автоматически по определенным программам. 2. Правила перевода чисел из одной СС в другую Перевод из десятичной системы счисления в двоичную, шестнадцатеричную и восьмеричную СС: 1. Исходное целое число делится на основание системы счисления, в которую переводится (на 2 - при переводе в двоичную СС, на 16 - при переводе в шестнадцатеричную СС, на 8- в восьмеричную СС); получается частное и остаток, 2. Получаемые частные делить на основание новой СС до тех пор, пока частное не станет меньше основания системы счисления, в которую выполняется перевод. 3. Все полученные остатки и последнее частное преобразуются в соответствии с таблицей перевода в цифры той системы счисления, в которую выполняется перевод 4. Формируется результирующее число младший разряд которого – первый остаток отделения, а старший – последнее частное. Пример 1. Выполнить перевод десятичного числа 37 в двоичную СС: 6 Результат перевода (37)10= (100101)2. Пример 2. Выполнить перевод десятичного числа 123 в шестнадцатеричную СС: Здесь остаток 11 преобразован в шестнадцатеричную цифру В (см. таблицу) и после этого данная цифра вошла в число. Таким образом, 123 = 7В 16 Перевод из двоичной, шестнадцатеричной и восьмеричной систем счисления в десятичную для перевода двоичного, восьмеричного, шестнадцатеричногочисла в десятичную СС достаточно представить число в виде полинома, подставить в него известные коэффициенты и вычислить сумму. Пример 3. Перевести число 10011 из двоичной СС в десятичную СС. 10011 2 = 1*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 16+0+0+2+1 = 19. Результат перевода 10011 2 = 19. Пример 4. Перевести число 11011.11 из двоичной в десятичную СС. Пример 5. Перевести шестнадцатеричное число 2Е5.А в десятичную СС. Перевод из двоичной системы счисления в восьмеричную, шестнадцатеричную СС: Исходное двоичное число разбивают на группы потри четыре) цифры, начиная с младших разрядов (слева направо. При этом дополняются при необходимости нулями крайние левую и правую группы. Затем каждую группу из трех четырех) цифр заменяют соответствующей восьмеричной шестнадцатеричной) цифрой. Пример 5. Перевести число 10011 из двоичной в шестнадцатеричную СС. Поскольку в исходном двоичном числе количество цифр не кратно 4, дополняем его слева незначащими нулями до достижения кратности 4 числа цифр. Имеем В соответствии с таблицей 0001 2 = 1 2 = 11 6 , 0011 2 = 11 2 = 3 16 7 Результат перевода 10011 2 = 13 Если дробь двигаясь от точки сначала влево, а затем вправо, разбивают двоичное число на группы потри четыре) разряда, дополняя при необходимости нулями крайние левую и правую группы. Затем каждую группу из трех четырех) разрядов заменяют соответствующей восьмеричной шестнадцатеричной) цифрой. Пример 6. Перевести число 111001100.001 из двоичной в восьмеричную СС. Пример 7. Перевести число 10111110001.001 из двоичной в шестнадцатеричную СС Перевод из восьмеричной, шестнадцатеричной системы счисления в двоичную СС: Для перевода восьмеричного (шестнадцатеричного)числа в двоичнуюСС достаточно заменить каждую цифру восьмеричного (шестнадцатеричного) числа соответствующим трехразрядным (четырехразрядным) двоичным числом. Затем необходимо удалить крайние нули слева, а при наличии точки — и крайние нули справа. Пример 8. Выполнить перевод шестнадцатеричного числа 13 в двоичную СС: По таблице имеем 1 16 = 1 2 и после дополнения незначащими нулями двоичного числа 1 2 = 0001 2 ; 3 16 = 11 2 и после дополнения незначащими нулями двоичного числа 11 2 = 0011 Тогда 13 16 = 00010011 2 . После удаления незначащих нулей имеем 13 16 = 10011 Пример 9. Перевести число 305.4 из восьмеричной в двоичную СС Отмеченные символами «↑» нули следует отбросить. Двоичные числа взяты из табл. 1. 8 Пример 10. Перевести число 7D2.E из шестнадцатеричной в двоичную СС. 3. Перевод смешанных чисел Перевод правильных дробей из десятичной системы счисления в двоичную и шестнадцатеричную Правильная дробь имеет нулевую целую часть, те. у нее числитель меньше знаменателя. Результат перевода правильной дроби всегда правильная дробь. а) исходная дробь умножается на основание системы счисления, в которую переводится (2 или 16); б) в полученном произведении целая часть преобразуется в соответствии с таблицей в цифру нужной системы счисления и отбрасывается – она является старшей цифрой получаемой дроби в) оставшаяся дробная часть (это правильная дробь) вновь умножается на нужное основание системы счисления с последующей обработкой полученного произведения в соответствии с шагами аи б г) процедура умножения продолжается до тех пор, пока ни будет получен нулевой результат в дробной части произведения или ни будет достигнуто требуемое количество цифр в результате д) формируется искомое число последовательно отброшенные в шаге б) цифры составляют дробную часть результата, причем в порядке уменьшения старшинства. Пример 12. Выполнить перевод числа 0,847 в двоичную систему счисления. Перевод выполнить до четырех значащих цифр после запятой. 9 Пример 13. Выполнить перевод числа 0,847 в шестнадцатеричную систему счисления. Перевод выполнить до трех значащих цифр. Перевод неправильных дробей из десятичной системы счисления в двоичную и шестнадцатеричную Неправильная дробь имеет ненулевую дробную часть, те. у нее числитель больше знаменателя. Результат перевода неправильной дроби всегда неправильная дробь. При переводе отдельно переводится целая часть числа, отдельно – дробная. Результаты складываются. Пример 14. Выполнить перевод из десятичной системы счисления в шестнадцатеричную числа 19,847. Перевод выполнять до трех значащих цифр после запятой. Представим исходное число как сумму целого числа и правильной дроби 19,847 = 19 + 0,847. 19 = 13 16 , а в соответствии с примером 13- 0,847 = 0,D8D16. Тогда имеем 19 + 0,847 = 13 16 + 0,D8D 16 = Таким образом, 19,847 = 13,D8D 16 4. Арифметические операции в позиционных системах счисления Арифметические операции в рассматриваемых позиционных системах счисления выполняются по законам, известным из десятичной арифметики. Двоичная система счисления имеет основание 2, и для записи чисел используются всего две цифры 0 ив отличие от десяти цифр десятичной системы счисления. Рассмотрим сложение одноразрядных чисел 0+0=0, 0+1=1, 1+0=0. Эти равенства справедливы как для двоичной системы, таки для десятичной системы. Чему же равно 1+1? В десятичной системе это 2. Нов двоичной системе нет цифры 2! Известно, что при десятичном сложении 9+1 происходит перенос 1 в старший разряд, так как старше 9 цифры нет. То есть 9+1=10. В двоичной системе старшей 10 цифрой является 1. Следовательно, в двоичной системе 1+1=10, так как при сложении двух единиц происходит переполнение разряда и производится перенос в старший разряд. Переполнение разряда наступает тогда, когда значение числа в нем становится равным или большим основания. Для двоичной системы это число равно 2 (10 2 =2 10 ). Продолжая добавлять единицы, заметим 10 2 +1=11 2 , 11 2 +1=100 2 - произошла "цепная реакция, когда перенос единицы в один разряд вызывает перенос в следующий разряд. Сложение многоразрядных чисел происходит по этим же правилам с учетом возможности переносов из младших разрядов в старшие. Вычитание многоразрядных двоичных чисел производится с учетом возможных замов из старших разрядов. Действия умножения и деления чисел в двоичной арифметике можно выполнять по общепринятым для позиционных систем правилам. В основе правил арифметики любой позиционной системы лежат таблицы сложения и умножения одноразрядных чисел. Для двоичной системы счисления Для восьмеричной системы счисления 11 Для шестнадцатеричной системы счисления Аналогичные таблицы составляются для любой позиционной системы счисления. Пользуясь такими таблицами, можно выполнять действия над многозначными числами. Пример 4. Сложить числа а) 10000000100 (2) + 111000010 (2) = 10111000110 (2) ; б) 223,2 (8) + 427,54 (8) = 652,74 (8) ; в) ЗВЗ,6 (16) +38В,4 (16) =73Е,А 16) Пример 5. Выполнить умножение ах б) х) = 57334,134 (8) ; 12 в) Ах 18В7,52 (16) Задания к лабораторной работе В соответствии с выданным вариантом задания преподавателем выполнить 1. Переведите данное число из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления. Переведите данное число в десятичную систему счисления. 3. Сложите числа. 4. Выполните вычитание. 5. Выполните умножение. Примечание В заданиях 3 — 5 проверьте правильность вычислений переводом исходных данных и результатов в десятичную систему счисления. В задании 1 д) получите пять знаков после запятой в двоичном представлении. Вариант 1 Вариант 2 13 Вариант 3 Вариант 4 Вариант 5 Вариант 6 14 Контрольные вопросы 1. Что называется системой счисления 2. На какие два типа можно разделить все системы счисления 3. Какие системы счисления применяются в вычислительной технике позиционные или непозиционные? Почему 4. Что называется основанием системы счисления 5. Охарактеризуйте двоичную, восьмеричную, шестнадцатеричную системы счисления алфавит, основание системы счисления, запись числа. 6. По каким правилам выполняется сложение двух положительных целых чисел 7. Каковы правила выполнения арифметических операций в двоичной системе счисления 8. Для чего используется перевод чисел из одной системы счисления в другую 9. Сформулируйте правила перевода чисел из системы счисления с основанием р в десятичную систему счисления и обратного перевода из десятичной системы счисления в систему счисления с основанием р. Приведите примеры. 10. Как выполнить перевод чисел из двоичной СС в восьмеричную и обратный перевод Из двоичной СС в шестнадцатеричную и обратно Приведите примеры. Почему эти правила так просты 11. По каким правилам выполняется перевод из восьмеричной в шестнадцатеричную СС и наоборот Приведите примеры. 12. Чему равны веса разрядов слева от точки, разделяющей целую и дробную части, в двоичной системе счисления восьмеричной, шестнадцатеричной 13. Чему равны веса разрядов справа от точки, разделяющей целую и дробную части, в двоичной системе счисления (восьмеричной, шестнадцатеричной 15 Лабораторная работа №2: Машинные коды Цель работы Изучить основы машинной арифметики, представления чисел в прямом, обратном и дополнительном кодах и арифметических операций над ними. Общие сведения из теории Для представления информации в памяти ЭВМ (как числовой, таки нечисловой) используется двоичный способ кодирования. Элементарная ячейка памяти ЭВМ имеет длину 8 бит (байт. Каждый байт имеет свой номер (его называют адресом. Наибольшую последовательность бит, которую ЭВМ может обрабатывать как единое целое, называют машинным словом. Длина машинного слова зависит от разрядности процессора и может быть равной 16, 32 битами т.д. Для кодирования символов достаточно одного байта. При этом можно представить 256 символов (с десятичными кодами от 0 до 255). Набор символов персональных ЭВМ IBM PC чаще всего является расширением кода ASCII (American Standart Code for Information Interchange — стандартный американский код для обмена информацией. В некоторых случаях при представлении в памяти ЭВМ чисел используется смешанная двоично-десятичная система счисления, где для хранения каждого десятичного знака нужен полубайт (4 бита) и десятичные цифры от 0 до 9 представляются соответствующими двоичными числами от 0000 до 1001. Например, упакованный десятичный формат, предназначенный для хранения целых чисел с 18 значащими цифрами и занимающий в памяти 10 байт (старший из которых знаковый, использует именно этот вариант. В ЭВМ применяются две формы представления чисел • естественная форма, или форма с фиксированной запятой (точкой) — ФЗ (ФТ); • нормальная форма, или форма с плавающей запятой (точкой) - ПЗ (ПТ). Для представления чисел в ЭВМ обычно используют битовые наборы — последовательности нулей и единиц фиксированной длины. Организовать обработку наборов фиксированной длины технически легче, чем наборов переменной длины. Позиция в битовом наборе называется разрядом. 16 1. Представление целых чисел Целые числа в компьютере хранятся в формате с фиксированной запятой. Для записи числа с фиксированной точкой машинное слово (операнд) делится на два фиксированных поля (части) поле знака и поле цифр. Эта форма наиболее проста, естественна, но имеет небольшой диапазон представления чисел и поэтому чаще всего неприемлема при вычислениях. Необходимость кодирования чисел определяется тем, что в ЭВМ нельзя вводить числа в том виде, в котором они изображаются человеком на бумаге. Существует несколько соглашений о едином формате представления как положительных таки отрицательных чисел. Для алгебраического представления чисел, те. для представления чисел с учетом их знака, в вычислительных машинах используются специальные коды • прямой код числа • обратный код • дополнительный код. Все три способа используют самый левый (старший) разряд битового набора длины k для кодирования знака числа знак плюс кодируется нулем, а минус — единицей. Остальные разряды (называемые цифровой частью) используются для представления абсолютной величины числа. Прямой код числа пр это такое представление двоичного числах, при котором знак «+» кодируется нулем в старшем разряде числа, знак «-»- единицей. При этом старший разряд называется знаковым. Пример Получить прямой код для числа 5 и -5 +5 =+101 =0’101 2 -5 =-101 =1’101 Здесь апострофом для удобства определения знака я отделяю знаковые разряды. Обратный код Р |