3个版本 (1 个稳定版)
1.0.0 | 2019年5月11日 |
---|---|
0.1.1 | 2018年5月31日 |
0.1.0 | 2018年5月31日 |
#64 在 值格式化 中
93,585 每月下载量
在 117 个crates中使用 (28 直接使用)
18KB
465 行
此crate添加了一个工具,可以将数字以2到36的任意基数进行格式化。
这是一个轻量级crate,没有依赖。
对于原始有符号整数(从 i8
到 i128
,以及 isize
),负值以二进制补码形式进行格式化。
还有一个特定的函数,用于格式化标准库中尚未存在的每个基数,例如 radix_3
用于格式化以3为基数的数字。
开始使用
在cargo清单中添加crate
radix_fmt = "1"
在作用域中导入 radix
,然后你就可以开始使用了
use radix_fmt::radix;
示例
use radix_fmt::*;
let n = 35;
// Ouput: "z"
println!("{}", radix(n, 36));
// Same ouput: "z"
println!("{}", radix_36(n));
您可以使用 alternate 修饰符将字母数字大写
use radix_fmt::radix;
let n = 35;
// Ouput: "Z"
println!("{:#}", radix(n, 36));
常见问题解答
-
当基数大于
10
时,使用哪些数字?此crate使用字母表顺序的字母。这就是为什么最大基数为36:它使用了所有的数字和字母表中的所有字母。
-
在特定基数格式化的函数中,为什么有些缺失?例如,有
radix_7
和radix_9
,但没有radix_8
。除了
2
、8
、10
和16
之外,范围内的所有数字都被表示,因为它们已经通过二进制、八进制、十进制(常规)和十六进制格式化在标准库中存在。 -
如果我想使用大写字母作为数字怎么办?
使用 alternate 修饰符
{:#}
。 -
为什么负数的格式化结果很奇怪?
与标准库类似,当数字以非十进制基数格式化时,使用二进制补码表示。这意味着数字被转换为无符号版本(例如,对于
i8
,使用的数字是:n as u8
)。