c语言整形和布尔运算,在C++中使用按位运算符进行布尔运算

Cheers and h..

7

bitlevel运算符的缺点.

你问:

"有什么理由不使用的位运算符&,|以及^为'在C++布尔’值?"

是的,逻辑运算符,即内置的高级布尔运算符!,&&并||提供以下优点:

保证将参数转换为bool,即为0和1有序值.

保证短路评估,一旦最终结果已知,表达式评估就会停止.

这可以解释为树值逻辑,具有True,False和Indeterminate.

可读文本等价物not,and并且or,即使我不使用他们自己.

正如读者锑的评论也指出了位级运营商的替代标记,即bitand,bitor,xor和compl,但在我看来,这些都是小于可读性and,or和not.

简而言之,高级运算符的每个这样的优点都是位级运算符的缺点.

特别是,由于按位运算符缺少参数转换为0/1,因此得到eg 1 & 2→ 0,而1 && 2→ true.此外^,按位排他或,可能以这种方式行为不端.被视为布尔值1和2是相同的,即true,但被视为位图,它们是不同的.

如何表达逻辑要么/或 C++中.

然后,您提供一些问题的背景,

"我有时遇到两种情况中只有一种情况要求为真(XOR)的情况,所以我只是将^运算符抛出一个条件表达式."

嗯,按位运算符的优先级高于逻辑运算符.这尤其意味着在诸如的混合表达中

a && b ^ c

你得到了意想不到的结果a && (b ^ c).

而只是写

(a && b) != c

更简明扼要地表达你的意思.

对于多个参数要么/或没有C++运算符来完成这项工作.例如,如果你写的a ^

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值