How do I print an integer in binary with leading zeros?

后端 未结 1 498
借酒劲吻你
借酒劲吻你 2020-12-18 21:22

I\'m doing some bit twiddling and I\'d like to print all the bits in my u16.

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

相关标签:
1条回答
  • 2020-12-18 22:13
    let flags = 0b0000000000101100u16;
    println!("flags: {:#018b}", flags);
    

    The 018 pads with zeros to a width of 18. That width includes 0b (length=2) plus a u16 (length=16) so 18 = 2 + 16. It must come between # and b.

    Rust's fmt docs explain both leading zeros and radix formatting, but don't show how to combine them.

    Here are u8, u16, and u32:

    //                       Width  0       8      16      24      32
    //                              |       |       |       |       |
    println!("{:#010b}", 1i8);  // 0b00000001
    println!("{:#018b}", 1i16); // 0b0000000000000001
    println!("{:#034b}", 1i32); // 0b00000000000000000000000000000001
    
    0 讨论(0)
提交回复
热议问题