带填充零的十六进制格式

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

【讨论】:

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