由于javascript没有本机Long类型(就像Java那样),我目前正在使用this类,它应该模拟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结果有点不同,因为它是向后的,但角色为角色。
我做错了吗?这是正常的行为吗?谁能想到为什么会发生这种情况呢?