Главная страница
Навигация по странице:

  • 3.68F5C28F5C28… c)

  • 179.75 d)

  • 0

  • 2

  • 4

  • 447.03 ≈ 677.0172

  • Прямой код двоичного числа

  • Дополнительный код

  • Архитектура аппаратных средств Практическая Работа. Практическая работа. Практическая работа 1 Представление чисел в различных системах счисления и операции над ними


    Скачать 27.38 Kb.
    НазваниеПрактическая работа 1 Представление чисел в различных системах счисления и операции над ними
    АнкорАрхитектура аппаратных средств Практическая Работа
    Дата07.11.2021
    Размер27.38 Kb.
    Формат файлаdocx
    Имя файлаПрактическая работа.docx
    ТипПрактическая работа
    #265481

    Практическая работа №1

    Представление чисел в различных системах счисления и операции над ними

    Вариант 5.

    a) Переведите десятичное число 188(10) в двоичную систему счисления. Опишите метод перевода. Представьте результат в обратном коде. Поясните.

    Представим число 188 в двоичном коде:

    Перевод целых десятичных чисел в двоичную систему счисления осуществляется делением числа на 2 до тех пор, пока в остатке не останется число меньшее 2. Новое число записывается в виде остатков деления, начиная с последнего (Остаток от деления записываем в обратном порядке.).

    Целая часть от деления

    Остаток от деления

    188 / 2 = 94

    0

    94 / 2 = 47

    0

    47 / 2 = 23

    1

    23 / 2 = 11

    1

    11 / 2 = 5

    1

    5 / 2 = 2

    1

    2 / 2 = 1

    0

    1

    1


    188 = 10111100

    Обратный код для положительного числа совпадает с прямым кодом, который совпадает с записью двоичного числа. Значение знакового разряда для положительных чисел равно 0.

    Двоичное число 10111100 имеет обратный код 0,10111100

    b) Переведите дробное десятичное число 3.41(10) в двоичную и шестнадцатеричную системы счисления. Опишите метод перевода. Представьте результат в дополнительном коде. Поясните.

    3,41=3+0,41

    Перевод целых десятичных чисел в двоичную систему счисления осуществляется делением числа на 2 до тех пор, пока в остатке не останется число меньшее 2 Новое число записывается в виде остатков деления, начиная с последнего (Остаток от деления записываем в обратном порядке.).

    Целая часть от деления

    Остаток от деления

    3 / 2 = 1

    1

    1

    1

    Остаток от деления записываем в обратном порядке. Получаем целую часть числа в 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 соответствуют цифрам десятичной системы счисления.

    Целая часть от деления

    Остаток от деления

    3 / 16 = 0

    3

    0

    0

    Остаток от деления записываем в обратном порядке. Получаем целую часть числа в 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 разряда (триады). Затем заменяем каждую группу на код из таблицы.

    Двоичная СС

    Восьмеричная СС

    000

    0

    001

    1

    010

    2

    011

    3

    100

    4

    101

    5

    110

    6

    111

    7

    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. Новое число записывается в виде остатков деления, начиная с последнего.

    Целая часть от деления

    Остаток от деления

    447 / 8 = 55

    447-55*8=447-440=7

    55 / 8 = 6

    55-48=7

    6

    6


    Остаток от деления записываем в обратном порядке. Получаем целую часть числа в 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.03677.0172







    Практическая работа №2


    Операции над двоичными числами

     Вариант 5.

    a) Выполните сложение чисел а и в, и вычитание а – в. Операции выполнить с прямым и дополнительным кодами. Число а = 26, в = -57.


    Представим число 26 в двоичном коде. 26 = 11010

    Целая часть от деления

    Остаток от деления

    26 / 2 = 13

    0

    13 / 2 = 6

    1

    6 / 2 = 3

    0

    3 / 2 = 1

    1

    1 / 2 = 0

    1

    Представим число 57 в двоичном коде. 57 = 111001

    Целая часть от деления

    Остаток от деления

    57 / 2 = 28

    1

    28 / 2 = 14

    0

    14 / 2 = 7

    0

    7 / 2 = 3

    1

    3 / 2 = 1

    1

    1

    1



    Представим числа 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-й разряд.

    7

    6

    5

    4

    3

    2

    1

    0
















    1







    0

    0

    0

    1

    1

    0

    1

    0

    1

    1

    0

    0

    0

    1

    1

    1



















    0

    1


    В 2-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 3-й разряд.

    7

    6

    5

    4

    3

    2

    1

    0













    1

    1







    0

    0

    0

    1

    1

    0

    1

    0

    1

    1

    0

    0

    0

    1

    1

    1
















    0

    0

    1


    В 3-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 4-й разряд.

    7

    6

    5

    4

    3

    2

    1

    0










    1

    1

    1







    0

    0

    0

    1

    1

    0

    1

    0

    1

    1

    0

    0

    0

    1

    1

    1













    0

    0

    0

    1


    В 4-ом разряде возникло переполнение (1 + 1 = 10). Поэтому записываем 0, а 1 переносим на 5-й разряд.

    7

    6

    5

    4

    3

    2

    1

    0







    1

    1

    1

    1







    0

    0

    0

    1

    1

    0

    1

    0

    1

    1

    0

    0

    0

    1

    1

    1










    0

    0

    0

    0

    1


    В итоге получаем:

    7

    6

    5

    4

    3

    2

    1

    0







    1

    1

    1

    1







    0

    0

    0

    1

    1

    0

    1

    0

    1

    1

    0

    0

    0

    1

    1

    1

    1

    1

    1

    0

    0

    0

    0

    1


    Результат сложения: 11100001
    В старшем бите 1. Следовательно, в результате сложения получили отрицательное число. Переведем его обратно в прямой код. Для этого найдем обратный код (инвертируем все биты, кроме знакового): 0011110
    Дополнительный код (прибавляем 1):
    В итоге получаем:

    6

    5

    4

    3

    2

    1

    0






















    0

    0

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    1

    1

    1

    1

    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-разрядного регистра

    Выполним операцию вычитания с прямым и дополнительным кодами.


    Дополнительный код

    7

    6

    5

    4

    3

    2

    1

    0






    1

    1

    1

    1







    0

    0

    0

    1

    1

    0

    1

    0

    1

    1

    0

    0

    0

    1

    1

    1

    1

    1

    1

    0

    0

    0

    0

    1




    Прямой код

    7

    6

    5

    4

    3

    2

    1

    0






    1

    1

    1

    1







    0

    0

    0

    1

    1

    0

    1

    0

    1

    1

    0

    0

    0

    1

    1

    1

    1

    1

    1

    0

    0

    0

    0

    1

    b) Произведите умножение двоичных чисел а и в. 


    написать администратору сайта