我正在做一些小事,我想打印我的u16中的所有位.
let flags = 0b0000000000101100u16;
println!("flags: {:#b}", flags);
Run Code Online (Sandbox Code Playgroud)
这打印flags: 0b101100
.
如何打印flags: 0b0000000000101100
?
Nea*_*rdt 19
let flags = 0b0000000000101100u16;
println!("flags: {:#018b}", flags);
Run Code Online (Sandbox Code Playgroud)
将018
用零到18的宽度的宽度包括焊盘0b
(长度= 2)加一个U16(长度= 16)所以18 = 2 + 16
.它必须介于 #
和之间b
.
Rust的fmt文档解释了前导零和基数格式,但没有说明如何组合它们.
这是u8,u16和u32:
// Width 0 8 16 24 32
// | | | | |
println!("{:#010b}", 1i8); // 0b00000001
println!("{:#018b}", 1i16); // 0b0000000000000001
println!("{:#034b}", 1i32); // 0b00000000000000000000000000000001
Run Code Online (Sandbox Code Playgroud)
我开始更喜欢这些模式:
println!("{:08b}", 1i8);
println!("{:016b}", 12000u16);
println!("{:032b}", 624485u32);
Run Code Online (Sandbox Code Playgroud)
它将打印:
00000001
0010111011100000
00000000000010011000011101100101
Run Code Online (Sandbox Code Playgroud)