gpt4 book ai didi

c++ - '&' 在 C/C++ 中的作用是什么?它在 perl 中的等效运算符是什么?

转载 作者:太空狗 更新时间:2023-10-29 19:38:50 25 4
gpt4 key购买 nike

我正在编写一个协议(protocol)的 perl 实现,其规范是针对 C/C++ 给出的,但我不太了解 C。

条件 if ((flags & 0x400) != 0) 是什么意思?我如何在 perl 中做到这一点?

if ($flags == "\x400") 是否正确?

最佳答案

& 是按位与。参见 Bitwise operators .

因此 flags 被视为一系列位,然后您将它与具有您要检查的位集的内容进行 AND 运算。如果结果非零,则该位已设置,否则您正在查看的位未设置。特别是,在您的示例中,0x400 = 0100 0000 0000 用于检查 flags 中的第 11 位是否设置(为 1)。

通常,您不会使用 0x400,而是使用命名常量,因此该位代表什么很清楚。

所以 if ($flags == "\x400") 不正确。参见 Working with bits in Perl .

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

关于c++ - '&' 在 C/C++ 中的作用是什么?它在 perl 中的等效运算符是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7104342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com