2011-08-18 92 views

回答

6

&是一个按位与。见Bitwise operators

所以flags被视为一系列的位,然后你把它与一些准确设置你想检查的位进行比较。如果结果不为零,则设置该位,否则未设置您正在查看的位。特别是在你的例子中,0x400 = 0100 0000 0000被用于检查flags中的第11位是否被设置为1。

通常情况下,您不会使用0x400,而是使用命名常量,因此它很清楚该位表示什么。因此if ($flags == "\x400")是不正确的。请参阅Working with bits in Perl

位掩码的一个常见示例可以在Linux file permissions中看到。

4

这是C \ C++和Perl中的按位AND运算符。

+4

你应该链接到perlop。我看到一些人在这里抱怨docstore.mik.ua的链接,因为它是盗版。 – musiKk

+0

@musiKk不知道。将Perl相关链接更改为perlop。 – celavek

+0

太好了。 :)现在只有两个其他的答案...这很乏味。我想知道为什么O'Reilly没有对它做任何事情...... – musiKk

相关问题