Подтвердить что ты не робот

Можете ли вы использовать арифметические операторы для переключения между 0 и 1

Есть ли способ без использования логических и побитовых операторов, просто арифметических операторов, для переключения между целыми числами со значением 0 и 1?

т. "variable? = variable" сделает переменную a 1, если она 0 или 0, если она является одной

4b9b3361

Ответ 1

x = 1 - x

Будет переключаться между 0 и 1.

Ответ 2

Изменить: я неправильно понял вопрос, думал, что OP может использовать оператор any

A Немногие... (игнорируйте их)

x ^= 1       // bitwise operator
x = !x       // logical operator
x = (x <= 0) // kinda the same as x != 1

Без использования оператора?

int arr[] = {1,0}
x = arr[x]

Ответ 3

Предполагая, что он инициализируется как 0 или 1:

x = 1 - x

Ответ 4

Еще один способ:

x = (x + 1) % 2

Ответ 5

Просто для разнообразия:

x = 1 / (x + 1);

x = (x == 0);

x = (x != 1);

Не уверен, считаете ли вы, что == и != являются арифметическими операторами. Вероятно, нет, и, очевидно, хотя они работают на C, более строго типизированные языки не будут преобразовывать результат в целое число.

Ответ 6

Изменение комедии на втором методе

x = "\1"[x]

Ответ 7

int flip(int i){
    return 1 - i;
};

Ответ 8

Еще один способ перевернуть.

x = ABS(x - 1) // the absolute of (x - 1)

Ответ 9

вы можете просто попробовать это

+(!0) // output:1

+(!1) // output:0