非常に大きな16進数を10進数に変換しようとしていますが、あまり成功していません。私の問題は、14 桁を超える 16 進数を変換しようとすると、 deciaml = parseInt(hex, 16) を使用すると数値にエラーが発生することです。
Java ではこれに問題はありませんが、Javascript は 14 桁以上の 16 進数では正確ではないようです。
「BigNumber」を試しましたが、同じ誤った結果が得られます。
私はできる限り Web をトロールして、変換を行う Web サイトを見つけましたが、手書きの変換を行う方法を理解できません。
私は順番に各文字を取得し、その係数を掛けようとしました 123456789abcdef 15 * Math.pow(16, 0) + 14 * Math.pow(16, 1).... などですが、私は思います (noob であること)私のサブルーチンは、私が完全に(そして私は本当に違うという意味です!)答えを得たので、本来あるべきすべてではないかもしれません。
皆さんのお役に立てば、これまでに書いたものを投稿してご覧いただけますが、誰かが私に簡単な答えをくれることを願っています.
<script>
function Hex2decimal(hex){
var stringLength = hex.length;
var characterPosition = stringLength;
var character;
var hexChars = new Array();
hexChars[0] = "0";
hexChars[1] = "1";
hexChars[2] = "2";
hexChars[3] = "3";
hexChars[4] = "4";
hexChars[5] = "5";
hexChars[6] = "6";
hexChars[7] = "7";
hexChars[8] = "8";
hexChars[9] = "9";
hexChars[10] = "a";
hexChars[11] = "b";
hexChars[12] = "c";
hexChars[13] = "d";
hexChars[14] = "e";
hexChars[15] = "f";
var index = 0;
var hexChar;
var result;
// document.writeln(hex);
while (characterPosition >= 0)
{
// document.writeln(characterPosition);
character = hex.charAt(characterPosition);
while (index < hexChars.length)
{
// document.writeln(index);
document.writeln("String Character = " + character);
hexChar = hexChars[index];
document.writeln("Hex Character = " + hexChar);
if (hexChar == character)
{
result = hexChar;
document.writeln(result);
}
index++
}
// document.write(character);
characterPosition--;
}
return result;
}
</script>
ありがとうございました。
ポール