1

由于 javascript 没有原生的 Long 类型(就像 Java 一样),我目前正在使用这个类,它应该模拟 Java 的 Long 类型。但是,我得到了奇怪的输出。

  • Java Long1:3837363534333231,JS Long1:3132333435363738
  • Java Long2:3635343332313039,JS Long2:3930313233343536

当我对它们进行异或运算时:我得到:

  • JavaXor:e02020606020208,JSXor:80202060602020e

这些值是通过调用获得的:

  • Java: Long.toHexString(var);
  • JS:Long.toString(16)(这是goog.math.Long类的一个方法)

您会注意到 JS 表示(1 和 2)向后出现,每两个字符移动一次(因为十六进制表示 2 个字符,与它们的 Java 等效项相比。XOR 结果有点不同,因为它是向后的,但是字符-换字符。

难道我做错了什么?这是正常行为吗?谁能猜出为什么会发生这种情况?

4

0 回答 0