JavaScript には (Java のように) ネイティブの Long 型がないため、現在、Java の Long 型をエミュレートすることになっているこのクラスを使用しています。ただし、奇妙な出力が得られます。
- Java Long1: 3837363534333231、JS Long1: 3132333435363738
- Java Long2: 3635343332313039、JS Long2: 3930313233343536
そして、それらを XOR すると、次のようになります。
- JavaXor: e02020606020208、JSXor: 80202060602020e
これらの値は、次の呼び出しによって取得されます。
- Java: Long.toHexString(var);
- JS: Long.toString(16) (これは goog.math.Long クラスのメソッドです)
JS 表現 (1 と 2) が後方に表示され、2 文字ごとにシフトしていることに気付くでしょう (16 進数は、同等の Java と比較すると 2 文字を表すため)。XOR の結果は、後方にあるという点で少し異なりますが、文字for-characters。
私は何か間違ったことをしていますか?これは正常な動作ですか?なぜこれが起こっているのか誰にも推測できますか?