Javascript JS位运算符到Java
我正在尝试将js函数转换为Java,但我不知道如何在Java中使用js逐位运算符 我需要翻译一下: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中自动强制转换
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);