|
1
62
但是,在C++中,
|
|
|
2
33
首先,如果您使用的值不是
第二
不会始终给出与相同的结果(或结束状态)
|
|
|
3
13
|
|
|
4
11
|
|
5
10
位级运算符的缺点。你问:
是的
简单地说,高级运算符的每一个这样的优点都是位运算符的缺点。
如何表达逻辑 在C++中。
你可能会得到意想不到的结果
表示一般情况,或
或者,与非-
使用
|
|
|
6
3
与帕特里克的回答相反,C++没有
使用
|
|
|
7
2
您可能认为使用布尔值似乎没有必要,但它有两个主要方面的帮助: EDIT:您没有明确表示希望使用“if”语句的条件(尽管这似乎最有可能),这是我的假设。但我关于中间布尔值的建议仍然有效。 |
|
|
8
1
|
|
|
9
0
IIRC,当尝试将位操作的结果作为BOOL来进行转换时,许多C++编译器将发出警告。您必须使用类型转换才能使编译器满意。 在if表达式中使用按位操作也会受到同样的批评,尽管编译器可能不会这样做。任何非零值都被认为是真的,因此类似“if(7&3)”的内容将是真的。这种行为在Perl中是可以接受的,但C/C++是非常显式的语言。我认为斯波克眉毛是尽职调查我会加上“==0”或“!=0”来明确你的目标是什么。 但无论如何,这听起来像是个人喜好。我会通过lint或类似工具运行代码,看看它是否也认为这是一种不明智的策略。就个人而言,它读起来像是一个编码错误。 |
|
|
Luple · gles glsl逐位操作问题 8 年前 |
|
|
Dhiraj · Javascript-解析十六进制值 8 年前 |
|
|
limitless · 数据二进制表示的位运算 8 年前 |
|
|
Mr. Who · python 2.7上的and逻辑运算[重复] 8 年前 |
|
|
gnzg · 在本例中,为什么逐位运算符或截断值?[副本] 8 年前 |
|
|
Cash- · 用位运算符解密隐藏消息 9 年前 |