Учитывая целое число и либо 1, либо 0, я бы хотел получить либо целое число, либо 0, используя только побитовые операторы.Это означает, что нет, если операторы, условия и т. Д. В основном целое число * я.Система двойного дополнения!
Я работаю некоторое время, и это сложно.Вот мои неудачные попытки: Редактировать: целые числа без знака
unsigned int x = 24; // To change
unsigned int i = 0; // identity
((~i) | x) // if i = 0, ~i returns 111...1 || (111...1 | x) = 111...1
// else ~i returns 000...1 || (000...1 | x) = x (+1 sometimes)
Приведенный выше код делает это так, что если я равен 1, то я получаю идентификатор (только иногда), а если я равен 0, тоЯ получаю -1.Мне бы хотелось, чтобы, если мне было 1, я получал удостоверение, а если мне 0, я получал 0. Спасибо!