如何的BigInteger值转换为十六进制在Java中
我有一个BigInteger号码,我需要将其转换为十六进制。我尝试了以下方法:如何的BigInteger值转换为十六进制在Java中
String dec = null;
System.out.println("Enter the value in Dec: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
dec = br.readLine();
BigInteger toHex=new BigInteger(dec,16);
String s=toHex.toString(16);
System.out.println("The value in Hex is: "+ s);
但是,这并没有给我转换后的正确值。任何人都可以帮忙吗?
你应该改变
BigInteger toHex=new BigInteger(dec,16);
到
BigInteger toHex=new BigInteger(dec,10);
^
目前你问用户的癸值,然后解释输入为十六进制值。 (这就是为什么输出与输入相同)
需要提高我的打字速度 – 2012-08-11 22:26:44
确定。但是什么写的区别是:'的String = toHex.toString(16);'和'的String = toHex.toString();'?? – 2012-08-11 22:27:32
'的toString()'将返回数的底数为10的表示中,同时'的toString(16)'将返回的数量的基础-16表示。 – aioobe 2012-08-11 22:28:58
我想我看到的问题:
BigInteger toHex=new BigInteger(dec,16);
您在使用使用10
这里基部16试着键入的数字转换为整数。
使用
BigInteger toHex=new BigInteger(dec,10);
String hexValue = "FFF";
System.out.println("HexaDecimal Value :"+hexValue);
BigInteger bigint = new BigInteger(hexValue ,16);
System.out.println("Big Int Value :"+bigint);
BigInteger s = new BigInteger("4");
bigint = bigint.add(s);
System.out.println("After Addition :"+bigint);
String hexNewValue = bigint.toString(16);
System.out.println("HexaDecimal Value after Addition :"+hexNewValue);
的就是你得到的价值?你期望什么价值? – 2012-08-11 22:22:22
我期望输出包含字母。但输出始终是数字。 – 2012-08-11 22:23:34
你用什么十进制值? – 2012-08-11 22:24:04