可能重复:
Is it safe to use -1 to set all bits to true?
int max = ~0; What does it mean?
您好,
我偶然发现了这段代码..
size_t temp;
temp = (~0);
任何人都知道它的作用?
答案 0 :(得分:2)
这是通常用于分配由所有二进制代码构建的size_t
值的一种方式,与size_t
类型的实际大小无关。如果这是该代码的目的,则应使用(size_t)( -1 )
。
答案 1 :(得分:2)
~
是按位非运算符,它反转操作数的每个位。在这种情况下,操作数为0,因此每个位最初为0,并且在应用按位后不是每个位都是1.最终结果是得到一个用1位填充的size_t。
答案 2 :(得分:2)
这个怎么样?
C ++代码:
#include <limits>
std::size_t temp = std::numeric_limits<std::size_t>::max();
C代码: 请查看question。
我认为这是更恰当的方式。
答案 3 :(得分:1)
sharptooth的答案是正确的,但为了给你更多细节,~
是NOT的二元运算符。基本上,您将NOT 0
的二进制等效值分配给temp,并将每个位设置为1.