системы счисления. 1 Лабораторные работы по дисциплине Теоретические основы информатики Оглавление
Скачать 2 Mb.
|
1 Лабораторные работы по дисциплине Теоретические основы информатики Оглавление 1. Позиционные системы счисления. Перевод чисел из одной системы счисления в другую. .................... 2 2. Основные арифметические действия в различных системах счисления. .................................................12 Измерение информации 1. Единицы измерения количества информации ......................................................................................21 2. Содержательный подход к измерению количества информации 3. Алфавитный подходк измерению количества информации ................................................................23 4. Логические основы ЭВМ ...........................................................................................................................30 5. Алгоритм. Способы записи, основные типы алгоритмов. ........................................................................36 6. Машина Поста. Машина Тьюринга ...........................................................................................................48 2 1. Позиционные системы счисления. Перевод чисел из одной системы счисления в другую. Теоретические сведения Система счисления – способ наименования и изображения чисел с помощью символов, имеющих определенные количественные значения. Различают непозиционные и позиционные системы счисления. В непозиционной системе счисления цифры не меняют своего количественного значения при изменении их расположения в числе например, римская система счисления. Тем самым исключается всякая возможность автоматизации распознавания чисел и, как следствие, обработки информации. Этого недостатка лишена позиционная система счисления, в которой значение каждой цифры зависит от ее места (позиции) в числе. Позиционные системы счисления характеризуются • основанием Р системы счисления – количеством (Р) различных символов, используемых для изображения чисел. Значения этих символов лежат в пределах от 0 до Р • разрядом – позицией, занимаемой отдельным символом в изображении числа. Разряды нумеруются справа налево, начиная с 0; • весом разряда – количественным значением одной единицы разряда. Любое число C в позиционной системе счисления с основанием Р может быть представлено в виде полинома C= C m P m +C m-1 P m-1 +…+C 1 P 1 +C 0 P 0 +C -1 P -1 + C -2 P -2 +…+C -s P -s , целая часть числа дробная часть числа или где в качестве C i могут стоять любые из Р цифр алфавита, а нижние индексы определяют местоположение цифры в числе (разряд) Численно вес разряда определяется через основание Р системы счисления и номер i разряда Р. Таким образом, максимальное целое число, которое может быть представлено в m разрядах N max = P m -1. Минимальное значащее неравное) число, которое можно записать в s разрядах дробной части N min = P -s . Тогда, имея в целой части числа m, а в дробной s разрядов, можно представить P m+s чисел от 0 до P m+s -1. Поскольку в технике известно много физических приборов и сред с двумя устойчивыми состояниями, в качестве алфавита языка ЭВМ приняты символы 0 и 1, названные двоичными цифрами. Последовательности нулей и единиц конечной длины образуют двоичные числа, которые, в свою очередь, образуют позиционную двоичную систему счисления. В вычислительной технике применяют позиционные системы счисления с недеся- тичным основанием двоичную, восьмеричную, шестнадцатеричную и др. Для обозначения используемой системы счисления числа заключают в скобки и индексом указывают основание системы счисления 15 (10) , 1011 (2) ,735 (8) , 1EA9F (16) . Иногда скобки опускают и оставляют только индекс 15 10 , 1011 2 ,735 8 , Есть еще один способ обозначения системы счисления при помощи латинских букв добавляемых после числа. Например, 15 D; 1011 В 735 Q; 1EA9F H. Двоичная система счисления. Основание Р. Алфавит включает две двоичные цифры 0, 1. Веса разрядов в двоичной системе счисления равны 1, 4, 8, 16,... влево от запятой и 0,5; 0,25; 0,125; 0,625;... вправо от запятой. Двоичная система счисления имеет ряд преимуществ перед другими системами 3 для ее реализации нужны технические устройства с двумя устойчивыми состояниями (есть ток — нет тока, намагничен — не намагничен и т.п.); представление информации посредством только двух состояний надежно и помехоустойчиво; возможно применение аппарата булевой алгебры для выполнения логических преобразований информации двоичная арифметика намного проще десятичной. Недостаток двоичной системы — быстрый рост числа разрядов, необходимых для записи чисел. Таблица 1 Двоичная Основание 2) Восьмеричная Основание 8) Десятичная Основание 10) Шестнадцатиричная Основание 16) триады тетрады 0 1 0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 A B C D E F 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Восьмеричная и шестнадцатеричная системы счисления используются при составлении программ на языке машинных кодов для более короткой и удобной записи двоичных кодов — команд, данных, адресов и операндов. Алфавит восьмеричной системы счисления включает цифры от 0 до 7. Алфавит шестнадцатеричной системы счисления включает цифры от 0 до 9, для изображения цифр, больших 9, применяются латинские буквы A, B, C, D, E, F. Двоично-десятичная система счисления получила большое распространение в современных ЭВМ ввиду легкости перевода в десятичную систему и обратно. Она используется там, где основное внимание уделяется не простоте технического построения машины, а удобству работы пользователя. В этой системе счисления все десятичные цифры отдельно кодируются четырьмя двоичными цифрами. Примеры. 1) Десятичное число 9703 в двоично-десятичной системе выглядит так 1001 0111 0000 0011 2 2) Десятичное число 6251 в двоично-десятичной системе выглядит так 0110 0010 0101 0001 Рассмотрим общие правила перевода чисел из одной системы счисления в другую. Эти правила зависят оттого, в какой системе счисления осуществляются арифметические операции, связанные с преобразованием чисел, - в той, в какой представлено исходное число, или в той, в которую оно переводится. Правило 1. Перевод чисел в десятичную систему счисления. 4 Любое число в позиционной системе счисления можно представить в виде суммы степеней, где P - основание, C – коэффициенты- номера разрядов выражены в новой системе. Первая позиция слева от разделителя целой и дробной части имеет номер 0, слева от неё находится первая позиция, ещё левее – вторая и т.д. Первая позиция справа от разделителя имеет номер -1, следующая за ней – номер -2 и т.д. Все действия надо выполнять в новой системе. Примеры. 3 2 1 0 - 1 -2 1101,01 2 = 1·2 3 + 1·2 2 + 0·2 1 + 1·2 0 + 0·2 -1 + 1·2 -2 = 8 + 4 + 1 + 0,25 = 13,25 10 1 0 -1 -2 52,25 8 = 5·8 1 + 2·8 0 + 2·8 -1 + 5·8 -2 = 40 + 2 + 0,25 + 0,078 = 42,328 10 2 1 0 -1 1A9,4 16 = 1·16 2 + 10·16 1 + 9·16 0 + 4·16 -1 = 256 + 160 + 9 + 0,25 = 425,25 Правило 2. Перевод десятичных чисел в другую систему счисления. Для перевода целого десятичного числа применяется следующее правило 1. Разделить число на основание той системы счисления, в которую осуществляется перевод выделить целую часть частного и остаток отделения. Остаток будет младшим разрядом искомого числа 2. Целую часть частного снова разделить на основание системы счисления. Остаток отделения будет следующим разрядом числа 3. Продолжать процесс до тех пор, пока целая часть частного не станет равной нулю. Примеры. 1) Перевести десятичное число 356 в двоичную систему счисления. 356 10 =101100100 2 356 2 2 178 2 15 16 89 2 14 18 8 44 2 16 18 9 4 22 2 16 0 8 4 2 11 2 0 1 4 2 10 5 2 0 2 1 4 2 2 0 1 2 1 0 2) Перевести десятичное число 625 в восьмеричную систему счисления. 625 10 =1161 8 625 8 56 78 8 65 72 9 8 64 6 8 1 1 1 3) Перевести десятичное число 182 в шестнадцатеричную систему счисления. 5 182 10 =B6 16 182 16 16 11 = B 22 16 6 Правило 3. Перевод дробной части десятичных чисел в другую систему счисления. Чтобы перевести дробную часть десятичных чисел в другую систему счисления, нужно выполнить следующие действия 1. Умножить исходную дробь на основание системы счисления, в которую осуществляется перевод. Целая часть произведения будет старшим разрядом дробной части числа (позиция номер -1); 2. Дробную часть произведения снова умножить на основание системы счисления. Целая часть этого произведения будет следующим разрядом дроби позиция номер -2); 3. Продолжать процесс до тех пор, пока дробная часть очередного произведения не станет равной нулю, или пока не будет достигнута нужная точность числа. Примеры. 1) Перевести десятичное число 0,25 в двоичную систему счисления 0,25 10 =0,01 2 0,25 · 2 = 0,5; 0 – старший разряд двоичной дроби 0,5· 2 = 1,0 1 – следующий разряд. 2) Перевести десятичное число 0,53 в двоичную систему счисления с точностью до шестого знака после запятой. 0,53 10 = 0,100001 2 0,53 · 2 = 1,06; 0,06 · 2 = 0,12 0,12 · 2 = 0,24 0,24 · 2 = 0,48 0,48 · 2 = 0,96 0,96 · 2 = 1,92 3) Перевести десятичное число 0,13 в восьмеричную систему счисления с точностью до шестого знака после запятой. 0,13 10 =0,102436 8 0,13 · 8 = 1,04 0,04 · 8 = 0,32 0,32 · 8 = 2,56 0,56 · 8 = 4,48 0,48 · 8 = 3,84 0,84 · 8 = 6,72 4. Перевести десятичное число 0,96 в восьмеричную систему счисления с точностью до пятого знака после запятой. 0,96 10 = 0,75341 8 0,96 · 8 = 7,68 0,68 · 8 = 5,44 0,44 · 8 = 3,52 6 0,52 · 8 = 4,16 0,16 · 8 = 1,28 5. Перевести десятичное число 0,891 в шестнадцатеричную систему счисления с точностью до пятого знака после запятой. 0,891 10 = Е 16 0,891 · 16 = 14,256 0,256 · 16 = 4,096 0,096 · 16 = 1,536 0,536 · 16 = 8,576 0,576 · 16 = 9,216 6. Перевести десятичное число 0,398 в шестнадцатеричную систему счисления с точностью до четвёртого знака после запятой. 0,398 10 = Е 0,398 · 16 = 6,368 0,368 · 16 = 5,888 0,888 · 16 = 14,208 0,208 · 16 = 3,328 7. Перевести десятичное число 13,25 в двоичную систему счисления. 13,25 10 = 1101,01 2 0,25 · 2 = 0,5; 0,5· 2 = 1,0 8. Перевести десятичное число 42,33 в восьмеричную систему счисления с точностью до двух знаков после запятой. Перевести десятичное число 425,77 в шестнадцатеричную систему счисления с точностью до трёх знаков после запятой. 425,77 10 = А 16 0,77 · 16 = 12,32 0,32 · 16 = 5,12 0,12 · 16 = 1,92 Правило 4. Перевод чисел из восьмеричной в двоичную систему счисления. Для перевода числа из восьмеричной в двоичную систему счисления достаточно перевести каждый символ отдельно, а затем записать символы последовательно друг за другом, причём, каждое двоичное число, соответствующее одному восьмеричному символу, должно состоять из трёх разрядов – триад (т.к. 8 = 2 3 ). Пустые позиции вначале числа заполняются нулями. 13 2 12 6 2 1 6 3 2 0 2 1 1 42 8 40 5 2 425 16 32 26 16 105 16 1 96 10 9 7 Примеры. 1) Перевести восьмеричное число 615,27 8 в двоичную систему счисления 6 8 = 110 2 1 8 = 001 2 5 8 = 101 2 2 8 = 010 2 7 8 = 111 2 615,27 8 = 110001101,010111 2 2) Перевести восьмеричное число 173,54 8 в двоичную систему счисления 1 8 = 001 2 7 8 = 111 2 3 8 = 011 2 5 8 = 101 2 4 8 = 100 2 173,54 8 = 001111011,101100 2 Правило 5. Перевод чисел из двоичной системы счисления в восьмеричную. Обратный перевод осуществляется следующим образом 1. Двоичное число разбивается на триады. Разбивка выполняется вправо и влево от разделителя целой и дробной части. Неполные крайние триады дописываются нулями. 2. Выполняется перевод отдельно для каждой триады, получившиеся символы записываются последовательно друг за другом. Примеры. 1) Перевести двоичное число 10111001,01101 2 в восьмеричную систему счисления 2 = 271,32 8 2) Перевести двоичное число 1011000011,1001 2 в восьмеричную систему счисления Правило 6. Перевод чисел из шестнадцатеричной в двоичную систему счисления. Для перевода числа из шестнадцатеричной в двоичную систему счисления достаточно перевести каждый символ отдельно, а затем записать символы последовательно друг за другом, причём, каждое двоичное число, соответствующее одному шестнадцатеричному символу, должно состоять из четырёх разрядов – тетрад (т.к. 16 = 2 4 ). Пустые позиции вначале числа заполняются нулями. Примеры. 1) Перевести шестнадцатеричное число 6F3,A5 16 в двоичную систему счисления 6 16 = 0110 2 F 16 = 1111 2 3 16 = 0011 2 A 16 = 1010 2 5 16 = 0101 2 6F3,A5 16 = 011011110011,10100101 2 2) Перевести шестнадцатеричное число A39,F4 16 в двоичную систему счисления A 16 = 1010 2 3 16 = 0011 2 9 16 = 1001 2 F 16 = 1111 2 4 16 = 0100 2 8 A39,F4 16 = 101000111001,11110100 2 Правило 7. Перевод чисел из двоичной системы счисления в шестнадцатеричную. Обратный перевод осуществляется следующим образом 1. Двоичное число разбивается на тетрады. Разбивка выполняется вправо и влево от разделителя целой и дробной части. Неполные крайние тетрады дописываются нулями. 2. Выполняется перевод отдельно для каждой тетрады, получившиеся символы записываются последовательно друг за другом. Примеры. 1) Перевести двоичное число 111101,01101 2 в шестнадцатеричную систему счисления) Перевести двоичное число 1010000,01110 2 в шестнадцатеричную систему счисления. 1010000,01110 2 = 0101 0000 , 0111 0000 2 = 50,7 16 Правило 8. Перевод чисел из восьмеричной в шестнадцатеричную систему счисления. Перевод чисел из восьмеричной в шестнадцатеричную систему счисления удобно выполнять через двоичную систему счисления. Для этого необходимо выполнить следующие действия 1. Восьмеричное число перевести в двоичное число, причём, каждое двоичное число, соответствующее одному восьмеричному символу, должно состоять из триад 2. Полученное двоичное перевести в шестнадцатеричную систему счисления, разбив двоичное число на тетрады. Примеры. 1) Перевести восьмеричное число 534,713 8 в шестнадцатеричную систему счисления 2 = 5 8 3 8 4 8 7 8 1 8 3 8 = 0001 0101 1100 , 1110 0101 1000 2 = СЕ 16 2) Перевести восьмеричное число 360,234 8 в шестнадцатеричную систему счисления 2 = 3 8 6 8 0 8 2 8 3 8 4 8 = 0000 1111 0000 , 0100 1110 0000 2 == Правило 9. Перевод чисел из шестнадцатеричной в восьмеричную систему счисления. Перевод чисел из шестнадцатеричной в восьмеричную систему счисления удобно выполнять через двоичную систему счисления. Для этого необходимо выполнить следующие действия 1. Шестнадцатеричное число перевести в двоичное число, причём, каждое двоичное число, соответствующее одному шестнадцатеричному символу, должно состоять из тетрад 2. Полученное двоичное перевести в восьмеричную систему счисления, разбив двоичное число на триады. Примеры. 1) Перевести шестнадцатеричное число A2C,3 16 в восьмеричную систему счисления = 101 000 101 100 , 001 100 2 = 9 A 16 2 16 C 16 3 16 = 5054,14 8 2) Перевести шестнадцатеричное число CBF5,E6 16 в восьмеричную систему счисления. CBF5,E6 16 =1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 , 1 1 1 0 0 1 1 0 2 = C 16 B 16 F 16 5 16 E 16 6 16 = 001 100 101 111 110 101, 111 001 100 2 = 145765,714 Примеры 1. Укажите целое число от 8 до 11, двоичная запись которого содержит ровно две единицы. Если таких чисел несколько, укажите наибольшее из них. Пояснение Представим все числа в двоичной системе счисления 8 10 = 1000 2 , 9 10 = 1001 2 , 10 10 = 1010 2 , 11 10 = 1011 Из чисел 9 и 10 выбираем число 10, поскольку оно является наибольшим. Укажите целое число от 13 до 16, двоичная запись которого содержит наибольшее количество единиц. Пояснение Переведём эти числа в двоичную систему счисления и сосчитаем количество единиц Двоичная запись числа 15 содержит наибольшее количество единиц. Задания для самостоятельной работы Отчет по практической работе представить в письменном виде с подробным описанием последовательности действий при выполнении заданий. Задание 1. Перевести числа из 2с/с, 8 с/с, 16 с/с в 10 с/с по вариантам № варианта P = 2 P = 2 P = 8 P = 8 P = 16 P = 16 1. 1101010 10101,101 574 135,1 14C 2D,1 2. 1101110 11011,11 652 24,3 10F 6C,3 3. 1010101 10101,01 374 107,12 20C 1A,1 4. 1010111 1011,0111 431 104,1 1E0 1C,11 5. 11010101 1101,11 106 57,02 1C2 5E,11 6. 10110101 10111,01 227 116,12 1C4 10C,1 10 7. 10011101 1011,11 361 107,01 21F 1E,12 8. 1001011 1010,011 253 37,11 1C0 3A,01 9. 11100100 100101,1 327 175,1 А 10B,1 10. 10101101 11001,11 174 116,01 2DE 2F,1 11. 10100101 10100,001 554 125,1 1CB 10D,2 12. 10101011 10111,011 710 126,11 A5D 1B,21 13. 11000111 101000,101 325 130,12 D91 1A,12 14. 10100110 10101,011 541 114,1 E5A C4,1 15. 1100111 1100,01 371 57,011 A0F 5D,01 Задание 2. Выполнить задания по вариантам. Перевести число из 10 с/с в 2 с/с по вариантам. При переводе дробной части получить 4 знака после запятой. |