带整数的Java |运算符;

带整数的Java |运算符;,java,Java,我用Java编写程序大约一年了,但仍然发现了一些我不知道的东西。 如何: new Font(FontFamily.TIMES_ROMAN, 12, 1 | 4); |如何处理整数 多谢各位 另外,我在谷歌上搜索了很多。它是一个按位或运算符,在一个或多个位模式或二进制数字的单个位级别上进行操作 按位^运算符执行按位异或运算 如果任一操作数为1,则OR位运算将返回1;只有当两个操作数均为零时,OR位运算才会返回0 您可以在中获得完整的描述 因此,在您的例子中,操作数是1和4。将它们转换为二进制(仅

我用Java编写程序大约一年了,但仍然发现了一些我不知道的东西。 如何:

new Font(FontFamily.TIMES_ROMAN, 12, 1 | 4);
|如何处理整数

多谢各位


另外,我在谷歌上搜索了很多。它是一个按位
运算符,在一个或多个位模式或二进制数字的单个位级别上进行操作

按位^运算符执行按位异或运算

如果任一操作数为1,则OR位运算将返回1;只有当两个操作数均为零时,OR位运算才会返回0

您可以在中获得完整的描述

因此,在您的例子中,操作数是
1
4
。将它们转换为二进制(仅最后4位)将分别为
0100
0001
。现在一点一点地应用
|

0 1 0 0
0 0 0 1
---------
0 1 0 1 = (5 in base 10)

|
运算符计算其操作数的长度。要理解它,您必须将操作数转换为二进制:如果该位未在任意一个数字中设置,则生成一个“0”位;如果在任意一个数字中设置,则生成一个“1”位

对于您的数字,
4 | 1
的结果是5,因为:

  4 = 100
  1 = 001
4|1 = 101 = 5
按位OR运算符与“按位AND”运算符
&
相关,如果在其中一个数字中未设置该位,则该运算符生成“0”,如果在两个数字中都设置了该位,则生成“1”位

由于这些运算符处理其参数的逐位表示,因此当您习惯于处理十进制(以10为基数)数时,它们可能很难理解。以下关系成立,这使得当您拥有另一个时,很容易得出其中一个的结果:

a + b = (a|b) + (a&b)

|
称为按位或。这项工作由以下人员完成:

  • 将每个数字转换为二进制
  • 对匹配位置的每个数字执行布尔或(
    |
    )(0为假,1为真)
  • 将结果转换回十进制
  • 比如说,

       100 | 4
    OR 001 | 1
    -------+--
       101 | 5
    

    Font
    构造函数上的属性设计为二进制,正好一个数字是1。通过对这些数字进行O型运算,可以打开表示“或”的选项的数字。

    1必须是一个属性,4必须是另一个属性,这样或同时使用它们。@huseyintugrulbuyukisik OP想知道
    如何准确地组合这两个属性。你搜索了很多,但从未搜索过“java运算符”?您可能还想注意:如果您使用二进制、八进制或十六进制常量,这些运算符对人类来说更容易理解。e、 g.0xF124 | 0x0228=0xF32C。@user949300我倾向于将常量定义为
    1
    
       100 | 4
    OR 001 | 1
    -------+--
       101 | 5