【问题标题】: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

标签: rust


【解决方案1】:

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

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

这会根据需要打印0x0001

【讨论】:

    猜你喜欢
    • 2012-09-20
    • 2014-02-20
    • 2011-03-10
    • 2013-08-05
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    相关资源
    最近更新 更多