【发布时间】:2017-06-22 04:56:16
【问题描述】:
我正在做一些小玩意,我想打印我的 u16 中的所有位。
let flags = 0b0000000000101100u16;
println!("flags: {:#b}", flags);
这打印flags: 0b101100。
如何让它打印flags: 0b0000000000101100?
【问题讨论】:
标签: rust
我正在做一些小玩意,我想打印我的 u16 中的所有位。
let flags = 0b0000000000101100u16;
println!("flags: {:#b}", flags);
这打印flags: 0b101100。
如何让它打印flags: 0b0000000000101100?
【问题讨论】:
标签: rust
let flags = 0b0000000000101100u16;
println!("flags: {:#018b}", flags);
018 用零填充宽度为 18。该宽度包括 0b(长度=2)加上一个 u16(长度=16)所以 18 = 2 + 16。它必须在#和b之间。
Rust 的 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
【讨论】:
0b{:08b}代替{:#010b}怎么样?推理8 比推理10 更容易。