C++ 什么是'&';在C/C+中执行+;在perl中它的等价运算符是什么?
我正在编写一个协议的perl实现,该协议的规范是针对C/C++的,但我对C知之甚少 如果((标志&0x400)!=0)表示什么条件?如何在perl中实现这一点C++ 什么是'&';在C/C+中执行+;在perl中它的等价运算符是什么?,c++,c,perl,C++,C,Perl,我正在编写一个协议的perl实现,该协议的规范是针对C/C++的,但我对C知之甚少 如果((标志&0x400)!=0)表示什么条件?如何在perl中实现这一点 如果($flags==“\x400”)正确,则是否正确?&是按位AND。看 因此,标志被视为一系列位,然后你和它一起使用你想要检查的位集。如果结果为非零,则设置该位,否则不设置您正在查看的位。特别是,在您的示例中,0x400=0100 0000用于检查标志中的第11位是否设置为1 通常,您不会使用0x400,而是使用命名常量,因此很清楚该
如果($flags==“\x400”)正确,则
是否正确?&
是按位AND。看
因此,标志
被视为一系列位,然后你和它一起使用你想要检查的位集。如果结果为非零,则设置该位,否则不设置您正在查看的位。特别是,在您的示例中,0x400=0100 0000
用于检查标志中的第11位是否设置为1
通常,您不会使用0x400
,而是使用命名常量,因此很清楚该位代表什么
因此,如果($flags==“\x400”)
不正确。看
位掩蔽的一个常见示例可以在中看到。它是Perl中的,&
是按位and运算符,基本上这是一个测试,以查看是否在标志中设置了特定位。请参见此处的perl等价物:这是C\C++和perl中的按位AND运算符
运算符执行按位AND运算。在您的情况下,if((flags&0x400)!=0)
检查flags
变量的第十一位是否未设置为0 你应该链接到perlop。我在这里看到一些人抱怨docstore.mik.ua的链接是盗版的。@musiKk不知道这一点。将Perl相关链接更改为perlop.Great.:)现在只有另外两个答案。。。这太乏味了。我想知道为什么O'Reilly什么都不做。。。