• Выполнить операции сложения в дополнительном коде, с проверкой в десятичной системе счисления, для следующих исходных данных (n=8, m=0):

    1.    (- 10) + (-17)

    Пожалуйста подробно,молю

Ответы 1

  • n=8 в задании, насколько я понимаю, означает решение для восьмибитного представления данных, т.е. для случай, когда левый бит отводится под знак (0 - плюс, 1 - минус), а семь правых битов используются для представления числа.

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

    Вначале перевод.

    -13(10)=-0001101(2)

    Инвертируем биты: 1110010

    Прибавляем единицу: 1110011

    И дописываем слева 1 в качестве знака. 1 1110011

    Аналогичным образом поступаем и с числом -7:

    -7(10)=-0000111(2)

    Инвертируем биты: 1111000

    Прибавляем единицу: 1111001

    И дописываем слева 1 в качестве знака. 1 1111001

    Теперь сложение. Выполняем его в столбик для всех восьми бит.

      11110011

    + 11111001

     -------------

      11101100

    У нас при сложении появилась единица переноса из левого разряда, но дальше уже разрядов нет и она просто отбрасывается.

    Результат получился с единичным знаковым разрядом. Поэтому для получения величины результата поступаем в обратном порядке: отделяем семь правых бит, вычитаем единицу и снова инвертируем полученное значение. Вместо единичного знакового разряда приписываем числу знак минус.

    1101100 - 1 = 1101011. Инверсия: 0010100, результат -10100(2)=-20(10)

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years