2012-03-27 12 views
0

Java longをエンコードするのと同じ方法で、javascriptの数値型または文字列をエンコードしたいとします。Javaからjavascriptへの長い16進エンコーディングの移植

javaの

long toEncode = 1397378335821717182L; 

String encoded = Long.toHexString(toEncode); //"13647c315b7adebe" 

javascriptのhttps://stackoverflow.com/a/57805/1052539をやっ

var toEncode = '1397378335821717182'; 

var encoded = //missing code, should be'13647c315b7adebe' in the end as well 

私はあなたがおそらくjavascriptのBIGNUMライブラリが必要になります '13647c315b7adf00'

+1

可能複製[JavaScriptで進に小数を変換するには?](http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript) – Quentin

+1

@クエンティンは重複ではなく、彼の数字はダブルに収まらないので、精度を失うことになる。 – wds

答えて

0

node.js bigdecimal.jsについては、かなりうまくいきます。

BigDec> (new bigdecimal.BigInteger('1397378335821717182')).toString(16) 
'13647c315b7adebe' 
2

を取得します。

この1つは、あなたがやりたいようだ: http://www-cs-students.stanford.edu/~tjw/jsbn/

編集:私はリンク1が動作するようには思えません。素敵な1のために少し周りを見て(も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 
+0

thx。実際のコード例がありますか? – forste

+0

@forsteありがとうございます。私は2番目をお勧めしたいと思います。 – wds

+0

もう一度更新してください!しかし、私はnode.jsにこれが必要であることをもっと明らかにしておくべきでした。私はこれのために自分自身の答えを入れている – forste

関連する問題