具体来说,您能否告诉我这行代码的作用:
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/