【问题标题】:How do I print an integer in binary with leading zeros?如何打印带有前导零的二进制整数?
【发布时间】:2017-06-22 04:56:16
【问题描述】:

我正在做一些小玩意,我想打印我的 u16 中的所有位。

let flags = 0b0000000000101100u16;
println!("flags: {:#b}", flags);

这打印flags: 0b101100

如何让它打印flags: 0b0000000000101100

【问题讨论】:

    标签: rust


    【解决方案1】:
    let flags = 0b0000000000101100u16;
    println!("flags: {:#018b}", flags);
    

    018 用零填充宽度为 18。该宽度包括 0b(长度=2)加上一个 u16(长度=16)所以 18 = 2 + 16。它必须#b之间。

    Rust 的 fmt 文档解释了 leading zerosradix formatting,但没有说明如何组合它们。

    这里是 u8、u16 和 u32:

    //                       Width  0       8      16      24      32
    //                              |       |       |       |       |
    println!("{:#010b}", 1i8);  // 0b00000001
    println!("{:#018b}", 1i16); // 0b0000000000000001
    println!("{:#034b}", 1i32); // 0b00000000000000000000000000000001
    

    【讨论】:

    • 如何在中间加上下划线以使其更具可读性?
    • @AtulGopinathan 你需要一个定制的箱子。 stackoverflow.com/questions/26998485/…
    • 0b{:08b}代替{:#010b}怎么样?推理8 比推理10 更容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 2019-09-21
    • 2013-05-10
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多