带填充零的十六进制格式

Posted

技术标签:

【中文标题】带填充零的十六进制格式【英文标题】:Hexadecimal formatting with padded zeroes 【发布时间】:2018-02-25 10:14:23 【问题描述】:

将整数类型格式化为十六进制字符串时,我无法用零填充数字:

println!(":#4x", 0x0001 as u16) // => "0x1", but expected "0x0001"
println!(":#02x", 0x0001 as u16) // => "0x1", same

【问题讨论】:

您的第二个问题与this one重复 实际上,第一个 println! 打印 `0x1`(带有前导空格),第二个打印 0x01。您只需要考虑 0x 计入请求的长度。 println!(":#06x", 0x0001 as u16); 将打印 0x0001 【参考方案1】:

请记住,前导 0x 计入长度,因此如果您想要打印为 0x0001 的内容,那么长度实际上是 6,而不是 4。

fn main() 
    println!(":#06x", 0x0001u16);

这会根据需要打印0x0001

【讨论】:

以上是关于带填充零的十六进制格式的主要内容,如果未能解决你的问题,请参考以下文章

将 int 转换为带前导零的十六进制

“意外的标记 。” JSON Parse 无法解析前导零的十进制

填充数字格式的时间表达式,具有带前导零的可变分隔符

printf() 十六进制格式

Python格式接近零的十进制[重复]

Vue 框架中的十进制格式