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

int var1 = (var2 + 7) & ~7;

谢谢

最佳答案

这是按位取反。这意味着它将对数字的每一位执行二进制NOT运算符。例如:

int x = 15; // Binary: 00000000 00000000 00000000 00001111
int y = ~x; // Binary: 11111111 11111111 11111111 11110000

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

如注释中所述,它还用于表示析构函数,但在您的示例中并非如此。

关于c++ - 在C++中〜是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3186984/

10-09 13:32