我正在做一些位操作,我想打印的所有位在我的U16。
let flags = 0b0000000000101100u16;
println!("flags: {:#b}", flags);
这将打印flags: 0b101100
。
我如何使它打印flags: 0b0000000000101100
?
let flags = 0b0000000000101100u16;
println!("flags: {:#018b}", flags);
所述018
垫用零到18的宽度的宽度包括0b
(长度= 2)加一个U16(长度= 16)所以18 = 2 + 16
。它一定要来#
和b
之间。
锈病的FMT文档解释这两个leading zeros和radix formatting,但没有显示出如何将它们结合起来。
这里有U8,U16,U32和:
// Width 0 8 16 24 32
// | | | | |
println!("{:#010b}", 1i8); // 0b00000001
println!("{:#018b}", 1i16); // 0b0000000000000001
println!("{:#034b}", 1i32); // 0b00000000000000000000000000000001