1. Y + Y то же самое, что сдвиг на один бит влево, _младший_бит_заполняется_нулём_.
2. XOR выставляет бит в единицу, если биты операндов не совпадают
R = X xor (Y + Y) == 3
11 = X xor ...0 => x = ...1
Итак, младший (нулевой) бит X известен - он равен 1.
T = Z xor (X + X) == 11
1011 = Z xor ...10 => z = ...01
Два младших бита Z = 01
S = Y xor (Z + Z) == 6
110 = Y xor ...010 => y = ...100
Три младших бита Y = 100
--
Вернёмся к R
11 = X xor ...1000 => x = ...1011
Теперь мы знаем четыре младших бита x
Теперь T
1011 = Z xor ...10110 => z = ...11101
Снова S
110 = Y xor ...111010 => y = ...111100
--
Вернёмся к R
11 = X xor ...1111000 => x = ...1111011
Теперь мы знаем четыре младших бита x
Теперь T
1011 = Z xor ...11110110 => z = ...11111101
Снова S
110 = Y xor ...111111010 => y = ...111111100
....
X = 111...1011 == -5
Y = 111...1100 == -4
Z = 111...1101 == -3
Другие языки программирования и технологии
В специализированной ЭВМ целые числа рассматриваются как числа со знаком и представляются в дополнительном коде. Для х
Напишите программу перебора, чего тут думать. Могу подсказать: X и Z - нечетные, Y - четное
Похожие вопросы
- Задана последовательность, содержащая n целых чисел. Необходимо найти число паскаль
- В последовательности целых чисел найдите минимальное число и количество его повторений. Паскаль, помогите!
- Отрицательные числа и дополнительный код
- Как представленное ниже значение в двоичном дополнительном коде преобразовать в десятичный формат? число 11010
- Нужна программа на паскале, вычисляющая дополнительный код отрицательного числа
- Вам даны все целые числа от 1 до N + 1, кроме одного. Найдите отсутствующее число.
- помогите? Дан массив целых чисел (n=15),
- Объявить массив целых чисел и заполнить его случайными значенниями.
- Дан файл целых чисел. Создать два новых файла, первый из которых содержит положительные числа из исходного файла...
- сравнение трех целых чисел в C++