我使用Java编程已经有一年了,但仍然发现有些东西我不知道。 以下是我需要了解的内容:
new Font(FontFamily.TIMES_ROMAN, 12, 1 | 4);
如何使用 | 处理整数?
谢谢
P.S. 我谷歌了很多。
我使用Java编程已经有一年了,但仍然发现有些东西我不知道。 以下是我需要了解的内容:
new Font(FontFamily.TIMES_ROMAN, 12, 1 | 4);
如何使用 | 处理整数?
谢谢
P.S. 我谷歌了很多。
|
运算符计算其操作数的 "按位或"。要理解它,您需要将操作数转换为二进制:如果数字中没有设置位,则它会产生一个“0”位,并且如果数字中设置了位,则它会产生一个“1”位。4|1
的结果是5,因为: 4 = 100
1 = 001
4|1 = 101 = 5
按位或运算符与“按位与”运算符&
相关,如果数字中的一位未设置,则生成“0”,如果在两个数字中都设置,则生成“1”位。
由于这些运算符作用于其参数的按位表示,因此当您习惯于使用十进制(基数10)数字时,它们可能很难理解。以下关系成立,使得在拥有另一个操作数时易于推导出一个操作数的结果:
a + b = (a|b) + (a&b)
1 << 0
,1 << 1
等。你不是在进行数学运算,而是在一个“位数组”中翻转位,使用除位以外的任何东西似乎都是不必要的认知负担。 - millimoose这是一个位或OR
运算符,在单个比特的级别上操作一个或多个比特模式或二进制数值。
位异或(^)运算符执行位异或运算。
位或运算将在任何操作数为1时返回1,并仅在两个操作数都为0时返回0。
您可以在JLS 15.22.1中获得完整的描述。
0|0 = 0
0|1 = 1
1|0 = 1
1|1 = 1
1
和4
。将它们转换为二进制(仅使用最后4位)将分别是0100
和0001
。现在逐位应用|
:0 1 0 0
0 0 0 1
---------
0 1 0 1 = (5 in base 10)
|
被称为按位或。它的工作方式是:
||
) 运算(0 为 false,1 为 true)例如,
100 | 4
OR 001 | 1
-------+--
101 | 5
< p > Font
构造函数上的属性被设计成在二进制中只有一个数字是 1。通过对这些数字进行按位或运算,您可以打开表示已进行按位或运算的选项的数字。
|
如何组合这两个属性。 - ameed