你可以使用算术运算符翻转0到1之间

Dan*_*pel 58 algorithm

有没有办法不使用逻辑和按位运算符,只是算术运算符,在值为0和1的整数之间进行翻转?

即."变量?=变量"如果为0则变量为1,如果为1则变量为0

Rev*_*nzo 180

x = 1 - x
Run Code Online (Sandbox Code Playgroud)

将在0和1之间切换.

  • 为了更广泛地应用这个,如果 `x` 在特定的正数范围内,那么你也可以使用它来反转它的值(即 `7-x` = 0/7, 1/6, 2/5, 3/4)。 (2认同)

st0*_*0le 27

编辑:我误解了这个问题,认为OP可以使用any运算符

更多......(忽略这些)

x ^= 1       // bitwise operator
x = !x       // logical operator
x = (x <= 0) // kinda the same as x != 1
Run Code Online (Sandbox Code Playgroud)

不使用运营商?

int arr[] = {1,0}
x = arr[x]
Run Code Online (Sandbox Code Playgroud)


Ham*_*ish 18

假设它被初始化为0或1:

x = 1 - x
Run Code Online (Sandbox Code Playgroud)


MAK*_*MAK 16

另一种方式:

x = (x + 1) % 2
Run Code Online (Sandbox Code Playgroud)

  • +1因为即使你意外地给出了超出该范围的整数,这总是会给你0或1. (3认同)

rus*_*lik 5

int flip(int i){
    return 1 - i;
};
Run Code Online (Sandbox Code Playgroud)


Bla*_*ace 5

斯托尔第二种方法的喜剧变奏

x = "\1"[x]
Run Code Online (Sandbox Code Playgroud)

  • 如果喜欢,您会喜欢x = x [“ \ 1”];`(C和C ++)。 (2认同)

sto*_*omy 5

另一种方式是稍微翻转一下。

x = ABS(x - 1) // the absolute of (x - 1)
Run Code Online (Sandbox Code Playgroud)