我正在努力将非常大的十六进制数转换为十进制数.我的问题是,当我尝试转换14位以上的十六进制数时,使用deciaml = parseInt(十六进制,16)会给出数字错误.
我在Java中没有这个问题,但Javascript在十六进制的14位数之上似乎不准确.
我试过"BigNumber",但是这给了我同样的错误结果.
我已尽最大努力浏览网页,并找到了可以进行转换的网站,但无法弄清楚如何进行转换.
我已经尝试依次获取每个角色并将其乘以其因子,即123456789abcdef 15*Math.pow(16,0)+ 14*Math.pow(16,1)....等我认为(作为菜鸟)我的子程序可能不是他们应该的全部,因为我得到了一个完全(我的意思是真的不同!)的答案.
如果它可以帮助你们,我可以发布我到目前为止所写的内容供你查看,但我希望有人对我有简单的答案.
<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; …Run Code Online (Sandbox Code Playgroud) 我注意到我的程序中有内存泄漏.
我已将问题追溯到该线.
Clock.setText("" + h + ":" + df.format(m) + ":" + df.format(s));
Run Code Online (Sandbox Code Playgroud)
我用Google搜索了这个似乎是一个常见的问题,但我还没有找到答案.
有谁知道修复?
这是整个代码:
package CodeBits;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Countdown {
private JFrame Timer;
private JTextField Clock;
private JLabel label;
private JLabel label_1;
static Calendar calendar = new GregorianCalendar();
int minutes = 90;
int count = minutes * 60; …Run Code Online (Sandbox Code Playgroud)