如何打印带有前导零的二进制整数?
Posted
技术标签:
【中文标题】如何打印带有前导零的二进制整数?【英文标题】:How do I print an integer in binary with leading zeros? 【发布时间】:2017-06-22 04:56:16 【问题描述】:我正在做一些小玩意,我想打印我的 u16 中的所有位。
let flags = 0b0000000000101100u16;
println!("flags: :#b", flags);
这打印flags: 0b101100
。
如何让它打印flags: 0b0000000000101100
?
【问题讨论】:
【参考方案1】: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
【讨论】:
如何在中间加上下划线以使其更具可读性? @AtulGopinathan 你需要一个定制的箱子。 ***.com/questions/26998485/… 用0b:08b
代替:#010b
怎么样?推理8
比推理10
更容易。以上是关于如何打印带有前导零的二进制整数?的主要内容,如果未能解决你的问题,请参考以下文章
在 Rust 中将二进制字符串转换为带有前导零的十六进制字符串
二进制的前导的零——mooc《零基础学Java语言》-(浙大翁凯)期末编程题