如何打印在二进制与前导零的整数?

问题描述 投票:9回答:1

我正在做一些位操作,我想打印的所有位在我的U16。

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

这将打印flags: 0b101100

我如何使它打印flags: 0b0000000000101100

rust
1个回答
18
投票
let flags = 0b0000000000101100u16;
println!("flags: {:#018b}", flags);

所述018垫用零到18的宽度的宽度包括0b(长度= 2)加一个U16(长度= 16)所以18 = 2 + 16。它一定要来#b之间。

锈病的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
© www.soinside.com 2019 - 2024. All rights reserved.