在C++中意味着什么?

Swi*_*iss 13 c++

具体来说,你能告诉我这行代码的作用:

int var1 = (var2 + 7) & ~7;
Run Code Online (Sandbox Code Playgroud)

谢谢

Vil*_*lx- 36

这是一种否定的否定.这意味着它在数字的每个位上执行二进制NOT运算符.例如:

int x = 15; // Binary: 00000000 00000000 00000000 00001111
int y = ~x; // Binary: 11111111 11111111 11111111 11110000
Run Code Online (Sandbox Code Playgroud)

当与&运算符结合使用时,它用于清除位.因此,在您的示例中,它意味着结果的最后3位var2+7设置为零.

正如评论中所指出的,它也用于表示析构函数,但在您的示例中并非如此.

  • +1正确答案.只想指出`~`也用于命名析构函数. (8认同)