如何将数字格式化为十进制、十六进制以外的其他进制(如三进制)
在Rust中格式化任意进制的数字
你不需要手动实现转换逻辑或者依赖第三方库,Rust标准库的format!宏本身就支持2到36之间的任意进制格式化,语法是{:radix},其中radix就是你需要的进制数。
举个例子,把数字6转为三进制:
let n = 6; let base3_str = format!("{:3}", n); // 结果为 "20"
如果进制大于10,输出会自动使用小写字母表示10及以上的数值(比如16进制的a-f);如果需要大写字母,只需要在进制数后加上X即可:
let n = 255; let base16_upper = format!("{:16X}", n); // 结果为 "FF"
再给一个12进制的示例:
let n = 30; let base12_str = format!("{:12}", n); // 结果为 "26"
注意:支持的进制范围是2到36,因为超过36的话没有对应的字符来表示更高的数值位(0-9对应0-9,a-z对应10-35)。
内容的提问来源于stack exchange,提问作者MubleBuble
相关产品推荐
相关产品推荐

