我想以与编码 Java long 相同的方式对 javascript 数字类型或字符串进行编码。
java
long toEncode = 1397378335821717182L;
String encoded = Long.toHexString(toEncode); //"13647c315b7adebe"
JavaScript
var toEncode = '1397378335821717182';
var encoded = //missing code, should be'13647c315b7adebe' in the end as well
正在做https://stackoverflow.com/a/57805/1052539我得到“13647c315b7adf00”
最佳答案
您可能需要一个 javascript bignum 库。
这似乎符合您的要求:
http://www-cs-students.stanford.edu/~tjw/jsbn/ 罢工>
编辑:我链接的那个似乎不起作用。四处寻找一个不错的(另请参阅 https://stackoverflow.com/questions/744099/javascript-bigdecimal-library ),但使用 another google hit ,一些简单的示例代码是:
<script>
var toEncode = str2bigInt('1397378335821717182', 10);
document.write(bigInt2str(toEncode, 16).toLowerCase());
</script>
returns: 13647c315b7adebe
或者使用 this library (至少,范围更好):
<script type="text/javascript" src="biginteger.js"></script>
<script>
var toEncode = BigInteger.parse('1397378335821717182');
document.write(toEncode.toString(16).toLowerCase());
</script>
returns: 13647c315b7adebe
关于java - 将长十六进制编码从 java 移植到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9889283/