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