String.format方法
在 Java 中,可以使用 String.format 方法来实现将 int 转成高位补 0 的 hexString:
int num = 255;
String hexString = String.format("%08X", num);
System.out.println(hexString);
长度为4位
int num = 255;
String hexString = String.format("%04X", num);
System.out.println(hexString);
这里的 %08X
表示将 num 格式化为 8 位的十六进制数,不足 8 位的高位补 0。其中,X 表示以大写形式输出十六进制数。
输出结果为:000000FF
如果需要将十六进制字符串转成 int 型,可以使用 Integer.parseInt 方法:
String hexString = "000000FF";
int num = Integer.parseInt(hexString, 16);
System.out.println(num);
这段代码将会输出 “255”,其中 “16” 表示将字符串解析为十六进制数。
同时,以下是一个GitHub上Java int转 hexString 高位不足补0的开源项目示例,
供参考:https://github.com/longhengyu/hex-utils
其他语言实现
以下是不同编程语言实现将 int 转换为 hexString 并补零的方法:
- Java
int num = 255;
String hex = String.format("%02x", num);
// hex = "ff"
- C#
int num = 255;
string hex = num.ToString("X2");
// hex = "FF"
- Python
num = 255
hex = format(num, "02x")
# hex = "ff"
- JavaScript
var num = 255;
var hex = ("0" + num.toString(16)).slice(-2);
// hex = "ff"
- C++
int num = 255;
std::stringstream stream;
stream << std::setfill('0') << std::setw(2) << std::hex << num;
std::string hex = stream.str();
// hex = "ff"
- Ruby
num = 255
hex = num.to_s(16).rjust(2, "0")
# hex = "ff"
- PHP
$num = 255;
$hex = str_pad(dechex($num), 2, "0", STR_PAD_LEFT);
// hex = "ff"
- Go
num := 255
hex := fmt.Sprintf("%02x", num)
// hex = "ff"
- Swift
let num = 255
let hex = String(format: "%02x", num)
// hex = "ff"
注意:在转换时需要注意不同语言的进制表示方式和补零方式,例如 C++ 中需要使用 std::setfill 和 std::setw,而 Ruby 中的 rjust() 函数可以用来填充字符串。