十六进制是一种表示数字的进位制方法,可以表示09以及AF共16个字符,十六进制通常用于计算机中数据的表示,如内存地址等
Integer x = 666;
String hex = x.toHexString(x);
System.out.println(hex);
打印出来的信息是“29a”,需要注意这里转换完的hex是字符串,值是16进制的一个数;
分为两种情况一般我们遇到都是第一种
1)1A
2)0xfff;?
第一种好办,直接如下:
public class HexToDecimal {
public static void main(String[] args) {
String hexString = "1A"; // 这是一个16进制的数字
int decimal = Integer.parseInt(hexString, 16);
System.out.println("The number " + hexString + " in decimal is: " + decimal);
}
}
在这个例子中,"1A"
是一个16进制的数字,Integer.parseInt(hexString, 16)
会将其转换为10进制的整数。第二个参数16
指定了基数为16,即告诉parseInt
方法输入的字符串是16进制的。运行上述程序,会输出:
The number 1A in decimal is: 26
因为16进制的1A
等于10进制的26
第二种呢,用上述方法就行不通了,因为会将“x”当做16进制的数进行转换,0xfff
是一种在许多编程语言中包括Java表示十六进制数的标准格式。这里的 0x
前缀表示随后的字符是十六进制数字。fff
在十六进制中是个有效的数值,显然”0x”不属于16进制里的表示。所以得想个办法判断字符串是否有0x,把前面的“0x”去掉。然后在执行上述方法
String hex = "0xfff";
Integer x = Integer.parseInt(hex.substring(2),16);//从第2个字符开始截取
System.out.println(x);
------------------------------------------与正文内容无关------------------------------------
如果觉的文章写对各位读者老爷们有帮助的话,麻烦点赞加关注呗!小弟在这拜谢了!
如果您觉得我的文章在某些地方写的不尽人意或者写的不对,从而让你对你人生观产生颠覆(概不负责),需要斧正,麻烦在评论区不吝赐教,作者看到后会根据您的提示查阅文章进行修改,还这世间一个公理一片蓝天