如何使用前导零打印二进制的整数?

时间:2017-06-22 04:56:17

标签: rust

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

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

这会打印flags: 0b101100

如何打印flags: 0b0000000000101100

1 个答案:

答案 0 :(得分:17)

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