我想將js函數轉換爲Java,但我不知道如何在java中使用JS位運算符。JS按位運算符到Java
我需要翻譯是:
var r = '0x' + a.substring(j, 2) | 0 and ('0x' + a.substr(j, 2)^r)
有沒有人這樣做呢?
謝謝!
我想將js函數轉換爲Java,但我不知道如何在java中使用JS位運算符。JS按位運算符到Java
我需要翻譯是:
var r = '0x' + a.substring(j, 2) | 0 and ('0x' + a.substr(j, 2)^r)
有沒有人這樣做呢?
謝謝!
Java的位操作進行了說明:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
基本上^是XOR,&是AND和|是OR。
您可以在這裏找到的規範:(!感謝上帝) http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.22
但是它們不能被應用到字符串。
首先,將字符串解析和位運算符分離爲單獨的步驟。
(!比約恩上文所指出的,位運算符不會自動投在Java中,就像他們在JavaScript中一樣)
所以
'0x' + a.substring(j, 2)
變爲:
String foo = '0x' + a.substring(j, 2);
int value = Integer.parseInt(foo, 16);
應以一個字符串表示的基數爲16的數字,並將其移動到一個int。一旦你把它作爲一個整數,你可以使用Java按位運算符。
在字符串上按位或者做什麼? – byxor
@byx看起來像它將參數摺疊爲數字(默認爲0),然後對這些數字應用操作 – Aaron
儘管存在一些奇怪的摺疊規則。 '[1]'摺疊到'1'和'[2]'到'2',但'[1,2]'摺疊到'0'。也許這對JS開發人員來說是常識,但它確實感覺很奇怪。 – Aaron