C ++ and,or,not,xor 关键字[重复]

Posted

技术标签:

【中文标题】C ++ and,or,not,xor 关键字[重复]【英文标题】:C++ and,or,not,xor keywords [duplicate] 【发布时间】:2011-01-24 12:29:00 【问题描述】:

可能重复:The written versions of the logical operators.

我注意到 C++ 定义了关键字 andornotxorand_eqor_eqnot_eqxor_eq 作为 @9876543330@、@9876 的替代@、!^&=|=!=|=。而且很少使用!怎么了?它们不便携吗?

【问题讨论】:

赞成,因为即使这是同一个问题,你的标题对我来说更清楚。 (我偶然发现了not-关键字,但并不知道它的存在。) 至少 Visual Studio 2015 CTP 6 不喜欢 ornot 我的一个问题是我永远记不起and 是指& 还是&&。那么5 and 6 的答案是什么? 4?错了,是1。即使x = 5; x and_eq 6是4。所以我更喜欢&&&。更加一致。 @Mr Lister 强烈反对。当您要处理位时,应使用&|,而当您打算编写布尔条件时,应使用andornot。生成更多干净的代码 @Ichthyo:他有一个有效的论点,即 &= 的替代名称应该是 bitand_eq 而不是 and_eq 【参考方案1】:

它们来自 C AFAIR,当时还不知道键盘上有什么特殊符号。因此,为了拥有可移植语言,它们被定义为任何人都可以使用 C,即使他们使用没有 &|^ (等)的键盘。

如今,当 QWERTY 成为标准(AZWERTY & co. 作为变体)时,它不再是问题。

附言。当然还有混淆代码竞赛;)

【讨论】:

PPS。要开始讨论一致性,请参阅 and_eqbitand ;) 它们在哪个标头或标准中定义???曾几何时,我使用MSVC 2010 并最终定义了我自己的not 等等...... @Top-Master 我认为它们是作为关键字语法的一部分? 谢谢!我在某处发现以前 <iso646.h> 用于 C<ciso646> 用于 C++ 需要包含(虽然 MSVC 不支持),而现在可能因为 C++17 及更高版本,它们是替代令牌(没有任何#define)。

以上是关于C ++ and,or,not,xor 关键字[重复]的主要内容,如果未能解决你的问题,请参考以下文章

delphi 按位运算 not and or xor shl shr

Python 逻辑代码:AND、NAND、OR、NOR、XOR、XNOR 和 NOT 模拟

汇编指令学习(AND,OR,XOR,NOT)

(32位汇编 五)mov/add/sub/and/or/xor/not

在vb.net中Not,And,Or,Xor相当于C++里面的啥的????????? 他们啥意思呀

and, or, not 与 &&, ||, ! [关闭]