js関数をJavaに変換しようとしていますが、JavaでJS Bitwise演算子を使用する方法がわかりません。JS Bitwise Operator to Java
私はこれを翻訳する必要があります。
var r = '0x' + a.substring(j, 2) | 0 and ('0x' + a.substr(j, 2)^r)
は誰もが今までそれをやっていますか?
ありがとうございます!
js関数をJavaに変換しようとしていますが、JavaでJS Bitwise演算子を使用する方法がわかりません。JS Bitwise Operator to 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
を、彼らは文字列に適用することはできませんが(神に感謝!)。
まず、文字列解析とビット演算子を別々のステップに分けます。
(!ビヨンは、先に指摘した。彼らはJavascriptで行うようにビット演算子には、Javaで自動キャストをしないでください)
をそう
'0x' + a.substring(j, 2)
は次のようになります。
べきString foo = '0x' + a.substring(j, 2);
int value = Integer.parseInt(foo, 16);
文字列で表される16進数を取り出し、それをintに移動します。一度intとして取得したら、Javaのビット演算子をうまく使うことができます。
文字列に対して 'ビット単位または'は何をしますか? – byxor
@byxorはNumberへの引数を折りたたんで(デフォルトは0)、次にこれらの数値に操作を適用しているようです。 – Aaron
奇妙な崩壊のルール。 '[1]'は '1'に、' [2] 'は' 2'に崩壊しますが、 '[1,2]'は '0'に崩壊します。 JS開発者にとってはたぶん一般的な知識かもしれませんが、確かに不思議な気分になります。 – Aaron