Информ технологии Экзамен Акс Пример решения АКС

Пример решения АКС

практическая работа информатика

Исходные данные: x=10101, y=-1110001

  1. Получение прямого кода: в том случае, если число положительное, то и прямой и обратный и дополнительный коды не отличаются друг от друга, тогда получается следующее (добавляем нули до 8 чисел):
Исходное число Прямой код Обратный Дополнительный
10101 10101 10101 10101
  • Если в число отрицательное, то в прямом коде «1» ставится на первую позицию, остальные числа не меняются, тогда для y=-1110001 прямой код будет равен 11110001.
  • Для получения обратного кода нужно не трогать первую «1», она является признаком того, что число отрицательное, а остальные инвертируем, тогда 10001110
  • Для получения дополнительного кода нужно прибавить «1» в самый конец, тогда 10001111
  • Теперь складываем оба числа
Исходное число Прямой код Обратный Дополнительный
10101 00010101 00010101 00010101
-1110001 11110001 10001110 10001111
    10100011 10100100

Анализируем обратный код

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

Получили число 1011100. В десятичном представлении это число имеет вид:

Для перевода необходимо умножить разряд числа на соответствующую ему степень разряда.

1011100 = 26*1 + 25*0 + 24*1 + 23*1 + 22*1 + 21*0 + 20*0 = 64 + 0 + 16 + 8 + 4 + 0 + 0 = 92

Результат сложения (в десятичном представлении): -92

Анализируем дополнительный код

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

Дополнительный код (прибавляем 1)

Получили число 1011100. В десятичном представлении это число имеет вид:

Для перевода необходимо умножить разряд числа на соответствующую ему степень разряда.

1011100 = 26*1 + 25*0 + 24*1 + 23*1 + 22*1 + 21*0 + 20*0 = 64 + 0 + 16 + 8 + 4 + 0 + 0 = 92

Результат сложения (в десятичном представлении): -92