Архитектура аппаратных средств Практическая Работа. Практическая работа. Практическая работа 1 Представление чисел в различных системах счисления и операции над ними
![]()
|
Практическая работа №1 Представление чисел в различных системах счисления и операции над ними Вариант 5. a) Переведите десятичное число 188(10) в двоичную систему счисления. Опишите метод перевода. Представьте результат в обратном коде. Поясните. Представим число 188 в двоичном коде: Перевод целых десятичных чисел в двоичную систему счисления осуществляется делением числа на 2 до тех пор, пока в остатке не останется число меньшее 2. Новое число записывается в виде остатков деления, начиная с последнего (Остаток от деления записываем в обратном порядке.).
188 = 10111100 Обратный код для положительного числа совпадает с прямым кодом, который совпадает с записью двоичного числа. Значение знакового разряда для положительных чисел равно 0. Двоичное число 10111100 имеет обратный код 0,10111100 b) Переведите дробное десятичное число 3.41(10) в двоичную и шестнадцатеричную системы счисления. Опишите метод перевода. Представьте результат в дополнительном коде. Поясните. 3,41=3+0,41 Перевод целых десятичных чисел в двоичную систему счисления осуществляется делением числа на 2 до тех пор, пока в остатке не останется число меньшее 2 Новое число записывается в виде остатков деления, начиная с последнего (Остаток от деления записываем в обратном порядке.).
Остаток от деления записываем в обратном порядке. Получаем целую часть числа в 2-ой системе счисления: 3 = 11 Для перевода дробной части числа последовательно умножаем дробную часть на основание 2. В результате каждый раз записываем целую часть произведения. 0.41*2 = 0.82 (целая часть 0) 0.82*2 = 1.64 (целая часть 1) 0.64*2 = 1.28 (целая часть 1) 0.28*2 = 0.56 (целая часть 0) 0.56*2 = 1.12 (целая часть 1) 0.12*2 = 0.24 (целая часть 0) 0.24*2 = 0.48 (целая часть 0) 0.48*2 = 0.96 (целая часть 0) 0.96*2 = 1.92 (целая часть 1) 0.92*2 = 1.84 (целая часть 1) 0.84*2 = 1.68 (целая часть 1) 0.68*2 = 1.36 (целая часть 1) 0.36*2 = 0.72 (целая часть 0) 0.72*2 = 1.44 (целая часть 1) 0.44*2 = 0.88 (целая часть 0) 0.88*2 = 1.76 (целая часть 1) 0.76*2 = 1.52 (целая часть 1) 0.52*2 = 1.04 (целая часть 1) 0.04*2 = 0.08 (целая часть 0) 0.08*2 = 0.16 (целая часть 0) 0.16*2 = 0.32 (целая часть 0) 0.32*2 = 0.64 (целая часть 0) 0.64*2 = 1.28 (целая часть 1) Получаем число в 2-ой системе счисления: 0.41 ≈ 0.01101000111101011100001… 3.41≈11.01101000111101011100001… Прямой код двоичного числа совпадает по изображению с записью самого числа. Значение знакового разряда для положительных чисел равно 0. Дополнительный код положительного числа совпадает с прямым кодом. Таким образом, число 3.41 в дополнительном двоичном коде записывается как 0,0000011.01101000111101011100001… Перевод целых десятичных чисел в шестнадцатеричную систему счисления осуществляется делением числа на основание новой системы счисления (в нашем случае это 16) до тех пор, пока в остатке не останется число меньшее основания новой системы счисления. Новое число записывается в виде остатков деления, начиная с последнего. В шестнадцатеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}, буквенные значения A,B,C,D,E,F соответствуют числам 10,11,12,13,14,15, а от 0 до 9 соответствуют цифрам десятичной системы счисления.
Остаток от деления записываем в обратном порядке. Получаем целую часть числа в 16-ой системе счисления: 3 = 03 Для перевода дробной части числа последовательно умножаем дробную часть на основание 16. В результате каждый раз записываем целую часть произведения. 0.41*16 = 6.56 (целая часть 6) 0.56*16 = 8.96 (целая часть 8) 0.96*16 = 15.36 (целая часть 15) 0.36*16 = 5.76 (целая часть 5) 0.76*16 = 12,16 (целая часть 12) 0.16*16 = 2,56 (целая часть 2) 0.56*16 = 8,96 (целая часть 8) 0.96*16 = 15,36 (целая часть 15) 0.36*16 = 5.76 (целая часть 5) 0.76*16 = 12,16 (целая часть 12) 0.16*16 = 2,56 (целая часть 2) 0.56*16 = 8,96 (целая часть 8) Получаем число в 16-ой системе счисления: 0.41 ≈ 0. 68F5C28F5C28… В итоге получаем число: 3.41≈3.68F5C28F5C28… c) Переведите двоичное число 10110011.110(2) в восьмеричную и десятичную системы счисления. Опишите метод перевода. Для перевода в восьмеричную систему разделим исходный код целой и дробной части числа на группы по 3 разряда (триады). Затем заменяем каждую группу на код из таблицы.
10110011 = 010 110 011 = 2 6 3 110 = 6 В итоге в восьмеричной системе счисления получаем число 263.6 Перевод двоичного числа в десятичную систему: 10110011.110 = 2^7*1 + 2^6*0 + 2^5*1 + 2^4*1 + 2^3*0 + 2^2*0 + 2^1*1 + 2^0*1 + 2^-1*1 + 2^-2*1 + 2^-3*0 = 128 + 0 + 32 + 16 + 0 + 0 + 2 + 1 + 0,5 + 0,25 + 0 = 179.75 В итоге в десятичной системе счисления получаем число 179.75 d) Переведите десятичное число 447.03(10) в восьмеричную систему счисления. 447,03=447+0,03 Перевод целых десятичных чисел в восьмеричную систему счисления осуществляется делением числа на 8 до тех пор, пока в остатке от целой части не останется число меньшее или равное 7. Новое число записывается в виде остатков деления, начиная с последнего.
Остаток от деления записываем в обратном порядке. Получаем целую часть числа в 8-ой системе счисления: 447 = 677 Для перевода дробной части числа последовательно умножаем дробную часть на основание 8. В результате каждый раз записываем целую часть произведения. 0.03*8 = 0.24 (целая часть 0) 0.24*8 = 1.92 (целая часть 1) 0.92*8 = 7.36 (целая часть 7) 0.36*8 = 2.88 (целая часть 2) 0.88*8 = 7,04 (целая часть 7) 0.04*8 = 0,32 (целая часть 0) 0.32*8 = 2,56 (целая часть 2) 0.56*8 = 4,48 (целая часть 4) 0.48*8 = 3,84 (целая часть 3) 0.84*8 = 6,72 (целая часть 6) 0.72*8 = 5,76 (целая часть 5) 0.76*8 = 6,08 (целая часть 6) 0.08*8 = 0,64 (целая часть 0) 0.64*8 = 5,12 (целая часть 5) 0.12*8 = 0,96 (целая часть 0) 0.96*8 = 7,68 (целая часть 7) 0.68*8 = 5,44 (целая часть 5) 0.44*8 = 3,52 (целая часть 3) 0.52*8 = 4,16 (целая часть 4) 0.16*8 = 1,28 (целая часть 1) 0.03 = 0.01727024365605075341... В итоге в восьмеричной системе счисления получаем число: 447.03≈677.0172 Практическая работа №2Операции над двоичными числами Вариант 5. a) Выполните сложение чисел а и в, и вычитание а – в. Операции выполнить с прямым и дополнительным кодами. Число а = 26, в = -57. Представим число 26 в двоичном коде. 26 = 11010
Представим число 57 в двоичном коде. 57 = 111001
Представим числа 26, -57 и 57 в прямом и дополнительном коде. Прямой код двоичного числа совпадает по изображению с записью самого числа. Значение знакового разряда для положительных чисел равно 0, а для отрицательных чисел 1. Дополнительный код положительного числа совпадает с прямым кодом. Для отрицательного числа дополнительный код образуется путем получения обратного кода и добавлением к младшему разряду единицы. Обратный код для положительного числа совпадает с прямым кодом. Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица. Число 26 в прямом двоичном коде записывается как 0,11010 Число -57 в прямом двоичном коде записывается как 1,111001 Число 57 в прямом двоичном коде записывается как 0,111001 Двоичное число 0011010 имеет обратный код 0,0011010 Двоичное число 0111001 имеет обратный код 1,1000110 Двоичное число 0111001 имеет обратный код 0,0111001 Число 26 представляется в двоичном дополнительном коде как 0,0011010 Число -57 представляется в двоичном дополнительном коде как 1,1000111 Число 57 представляется в двоичном дополнительном коде как 0,0111001 Сложим числа 00011010 и 11000111 В 1-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 2-й разряд.
В 2-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 3-й разряд.
В 3-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 4-й разряд.
В 4-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 5-й разряд.
В итоге получаем:
Результат сложения: 11100001 В старшем бите 1. Следовательно, в результате сложения получили отрицательное число. Переведем его обратно в прямой код. Для этого найдем обратный код (инвертируем все биты, кроме знакового): 0011110 Дополнительный код (прибавляем 1): В итоге получаем:
Получили число 0011111. В десятичном представлении это число имеет вид: Для перевода необходимо умножить разряд числа на соответствующую ему степень разряда. 0011111 = 2^6*0 + 2^5*0 + 2^4*1 + 2^3*1 + 2^2*1 + 2^1*1 + 2^0*1 = 0 + 0 + 16 + 8 + 4 + 2 + 1 = 31 Результат сложения (в десятичном представлении): -31 Выполним операцию сложения с прямым и дополнительным кодами на примере 8-разрядного регистра Выполним операцию вычитания с прямым и дополнительным кодами.
b) Произведите умножение двоичных чисел а и в. |