Questions tagged «bitwise-operators»

用于在位级别上进行操作的运算符。编程语言是针对字节的,而硬件是面向比特的。因此,能够在位级别进行操作在编程中非常重要,尤其是当程序直接与硬件交互时。



28
为什么我们通常使用|| 超过|?有什么区别?
我只是想知道为什么我们通常||在两个布尔之间使用逻辑OR 而不是按位OR |,尽管它们都运行良好。 我的意思是,请看以下内容: if(true | true) // pass if(true | false) // pass if(false | true) // pass if(false | false) // no pass if(true || true) // pass if(true || false) // pass if(false || true) // pass if(false || false) // no pass 我们可以|代替使用||吗?与&和相同&&。

1
Java中双波浪号(~~)的含义是什么?
浏览Guava的源代码时,遇到了以下代码(hashCode内部类的实现的一部分CartesianSet): int adjust = size() - 1; for (int i = 0; i < axes.size(); i++) { adjust *= 31; adjust = ~~adjust; // in GWT, we have to deal with integer overflow carefully } int hash = 1; for (Set<E> axis : axes) { hash = 31 * hash …



13
Java中的&和&&有什么区别?
我一直认为&&Java 中的运算符用于验证其两个布尔操作数是否均为true,并且该&运算符用于对两种整数类型进行按位运算。 最近,我知道&运算符也可以用于验证其两个布尔操作数是否都是true,唯一的区别是即使LHS操作数为false,它也会检查RHS操作数。 &Java中的运算符是否在内部重载?还是这背后还有其他概念?


13
使用xor运算符进行布尔检查是否是好习惯?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 10个月前关闭。 改善这个问题 由于布尔值的简洁性,我个人喜欢布尔运算符中的Exclusive^,,运算符。我更喜欢写 if (boolean1 ^ boolean2) { //do it } 比 if((boolean1 && !boolean2) || (boolean2 && !boolean1)) { //do it } 但是我经常会从其他经验丰富的Java开发人员(不仅是新手)中获得困惑的外观,有时还会评论如何仅将其用于按位运算。 我对有关使用^操作员的最佳做法感到好奇。

12
是否有任何语言具有一元布尔切换运算符?
因此,这更多是一个理论问题。C ++和直接基于它的语言(Java,C#,PHP)具有快捷方式运算符,用于将大多数二进制运算符的结果分配给第一个操作数,例如 a += 3; // for a = a + 3 a *= 3; // for a = a * 3; a <<= 3; // for a = a << 3; 但是当我想切换一个布尔表达式时,我总是发现自己在写类似 a = !a; 当a一个长表达式像时,这会很烦人。 this.dataSource.trackedObject.currentValue.booleanFlag = !this.dataSource.trackedObject.currentValue.booleanFlag; (是的,我知道得墨meter耳定律)。 所以我想知道,有没有用一元布尔切换操作员的语言,让我来简化a = !a而不需要重复表达的a,例如 !=a; // or a!!; 假设我们的语言具有适当的布尔类型(如boolC ++),a并且具有该类型(因此没有C样式int …

15
如何在Swift中创建NS_OPTIONS样式的位掩码枚举?
在Apple有关与C API进行交互的文档中,他们描述了将NS_ENUM带有标记的C样式枚举作为Swift枚举导入的方式。这是有道理的,并且由于Swift中的枚举很容易作为enum值类型提供,因此很容易看到如何创建自己的枚举。 再往下,它说了关于NS_OPTIONS标记C样式的选项: Swift还会导入标有NS_OPTIONS宏的选项。而选项的行为类似于进口枚举,选项还可以支持一些位操作,如&,|和~。在Objective-C中,您表示一个空的选项集,其常数为零(0)。在Swift中,用于nil表示没有任何选项。 鉴于optionsSwift中没有值类型,我们如何创建要使用的C-Style选项变量?

9
什么是按位运算符?
我是一个仅出于乐趣而编写代码的人,并且在学术或专业环境中都没有真正地去研究它,所以像这些按位运算符之类的东西真的使我无所适从。 我正在阅读一篇有关JavaScript的文章,该文章显然支持按位操作。我一直看到该操作在某些地方提到过,并且我尝试阅读以弄清楚它到底是什么,但是我似乎一点都没明白。那是什么 明确的例子会很棒!:D 再问几个问题-按位运算的一些实际应用是什么?您什么时候可以使用它们?


4
Java中布尔运算符对按位运算符的影响
按位运算符应该传递变量并对其进行逐位操作。对于整数,longs,char,这是有意义的。这些变量可以包含由其大小强制的所有值范围。 但是,对于布尔值,布尔值只能包含两个值。1 =真或0 =假。但是没有定义布尔值的大小。它可以大或小。 那么在布尔值上使用按位运算符有什么作用?JVM本质上是否将其转换为普通的逻辑运算符并继续运行?是否出于操作目的将布尔值视为单个位实体?还是未定义结果以及布尔值的大小?

3
| =(单管道等于)和&=(单与号等于)是什么意思
在下面的行中: //Folder.Attributes = FileAttributes.Directory | FileAttributes.Hidden | FileAttributes.System | FileAttributes.ReadOnly; Folder.Attributes |= FileAttributes.Directory | FileAttributes.Hidden | FileAttributes.System | FileAttributes.ReadOnly; Folder.Attributes |= ~FileAttributes.System; Folder.Attributes &= ~FileAttributes.System; 在C#中,|=(单个管道相等)和&=(单个与号相等)是什么意思, 我想删除系统属性并保留其他属性...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.