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);
This prints flags: 0b101100
.
How do I make it print flags: 0b0000000000101100
?
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);
This prints flags: 0b101100
.
How do I make it print flags: 0b0000000000101100
?
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