Java中如何将十六进制长整型转换为字符串?
Java中十六进制长整型转十进制字符串的方法
你提到的0x000104001L是Java的十六进制长整型字面量,它对应的十进制数值本身就是1064961,转换为字符串的核心是把这个长整型数值输出为十进制格式的字符串,有两种简单直接的方法:
方法一:使用String.valueOf()
直接将长整型变量传入String.valueOf()方法,默认会转换为十进制字符串:
long hexValue = 0x000104001L; String result = String.valueOf(hexValue); // result的值就是"1064961"
方法二:使用Long.toString()
Long.toString()方法同样默认以十进制格式输出长整型的字符串表示:
long hexValue = 0x000104001L; String result = Long.toString(hexValue); // result的值就是"1064961"
原理说明
十六进制字面量0x000104001L在Java中存储的是十进制数值1064961,计算过程如下:1*16^5 + 0*16^4 + 4*16^3 + 0*16^2 + 0*16^1 + 1*16^0 = 1048576 + 16384 + 1 = 1064961
所以不管用哪种字面量(十六/十进制)定义变量,变量存储的都是实际数值,转换字符串时默认输出十进制格式。
如果你的输入是字符串形式的十六进制(比如"0x000104001"),可以先解析为长整型再转字符串:
String hexStr = "0x000104001"; long num = Long.parseLong(hexStr.substring(2), 16); // 去掉前缀"0x"后按十六进制解析 String result = String.valueOf(num);
内容的提问来源于stack exchange,提问作者Sonya gold
相关产品推荐
相关产品推荐

