Преобразование числа из прямого кода в дополнительный осуществляется так:
Если число, записанное в прямом коде, положительное, то к нему дописывается старший (знаковый) разряд, равный 0, и на этом преобразование заканчивается;
Если число, записанное в прямом коде, отрицательное, то все разряды числа инвертируются, а к результату прибавляется 1. К получившемуся числу дописывается старший (знаковый) разряд, равный 1.
1) Записываем наше число в прямом(обычном двоичном коде в 16-разрядном представлении)
-7 в десятичной = 0000000000000111 - нули у нас впереди так как сетка 16 -разрядная
2) Инвертируем все разряды числа: 1111111111111000
3) Прибавляем к этому числу 1: 1111111111111001
4) Старший знаковый разряд у нас уже равен 1 следовательно число -7 в 10-ой в дополнительном коде: 1111110100111010
38
Объяснение:
Условие i mod 2 = 0 означает, что i должно быть четным.
Условие i div 5 = 4 означает, что i находится в промежутке от 20 до 24 включительно.
Требуется сказать, какое последнее i было добавлено в сумму s, что сумма стала равной 424, а i удовлетворяет хотя бы одному из условий выше.
Найдем сумму четных чисел с 2 до 18 включительно.
- этого мало
Добавим еще сумму чисел от 20 до 24 включительно.
- этого тоже мало.
Поэтому искомое значение i будет среди четных чисел больших 24.
Пусть количество четных элементов, начиная с 26, равно n, добавив которые к 200 можно получить 424. Тогда:
Среди найденных значений подходит только n=7.
Тогда последний требуемый четный элемент равен 26+2*(7-1)=38.
Таким образом, путем суммирования (2+4+...16+18)+(20+21+22+23+24)+(26+28+...+36+38) можно получить 424.
сначало переводим это же число только со знаком плюс в двоичную систему счисления
7 = 0000000000000111 и дописываем впереди 13 нулей, т.к. нам нужен код в 16-разрядном представлении
теперь дописываем спереди бит отвечающий за знак
1,0000000000000111 пр.
теперь записываем обратный код, для этого нужно заменить все 0 на 1, а 1 на 0 за исключение бита отвечающего за знак
1,1111111111111000 обр.
теперь чтобы получить допонительный код нужно к обратному прибавить 1
1,1111111111111001 доп.