Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS位运算符到Java_Javascript_Java_Bitwise Operators - Fatal编程技术网

Javascript JS位运算符到Java

Javascript JS位运算符到Java,javascript,java,bitwise-operators,Javascript,Java,Bitwise Operators,我正在尝试将js函数转换为Java,但我不知道如何在Java中使用js逐位运算符 我需要翻译一下: var r='0x'+a.substring(j,2)| 0和 ('0x'+a.substr(j,2)^r) 有人这样做过吗 谢谢 Java的按位运算符解释如下: 基本上,^是异或,&是和|是或 您可以在此处找到规范: 但是,它们不能应用于字符串(谢天谢地!)。首先,将字符串解析和按位运算符分离为单独的步骤 (Bjorn在上面指出;位运算符不像在Javascript中那样在Java中自动强制转换

我正在尝试将js函数转换为Java,但我不知道如何在Java中使用js逐位运算符

我需要翻译一下:

var r='0x'+a.substring(j,2)| 0和
('0x'+a.substr(j,2)^r)

有人这样做过吗


谢谢

Java的按位运算符解释如下:

基本上,^是异或,&是和|是或

您可以在此处找到规范:


但是,它们不能应用于字符串(谢天谢地!)。

首先,将字符串解析和按位运算符分离为单独的步骤

(Bjorn在上面指出;位运算符不像在Javascript中那样在Java中自动强制转换!)

所以

变成:

 String foo = '0x' + a.substring(j, 2);
 int value = Integer.parseInt(foo, 16);

它应该取一个以字符串表示的基数为16的数字,并将其移动到int。一旦将其作为int,就可以很好地使用Java按位运算符。

按位或对字符串做什么?@byxor看起来像是将其参数折叠为number(默认值为0),然后在这些数字上应用这个操作,尽管有一些奇怪的折叠规则<代码>[1]折叠为
1
[2]
折叠为
2
,但
[1,2]
折叠为
0
。也许这对JS开发人员来说是常识,但确实感觉很奇怪。
 String foo = '0x' + a.substring(j, 2);
 int value = Integer.parseInt(foo, 16);