3个不稳定版本
0.2.0 | 2022年11月7日 |
---|---|
0.1.1 | 2022年10月10日 |
0.1.0 | 2022年10月9日 |
#980 在 数学
110KB
3K SLoC
hwcalc
hwcalc,或 hc
,是一个任意位宽的计算器。
文档
请参阅 docs/man/hc.1
中的手册页,例如使用。
$ man -l docs/man/hc.1
还有一个渲染版本可供查阅,请访问 https://hllmn.net/man/hc.1。
构建
可以使用 Cargo 软件包管理器获取依赖项并构建 hc
$ cargo build --release
生成的二进制文件将位于 target/release/hc
。
安装
Makefile 中有一个用于安装 hc
二进制文件和手册页的规则
# make install
还有一个卸载规则
# make uninstall
或者,可以通过 Cargo 从 crates.io 安装 hc
cargo install hwcalc
这将把 hc
二进制文件安装在 Cargo 根目录下的 bin/hc
(通常是 ~/.cargo
)下,但不会安装手册页。
示例
hc
的功能类似于典型的计算器,可以输入将被评估的表达式
> (2 + 7) * 0xd
117
= 0b111_0101
= 0o165
= 0x75
可以通过类型说明符给数字指定特定的宽度
> 77u8
77
= 0b0100_1101
= 0o115
= 0x4d
对于负数,将以补码形式显示非十进制表示
> -77i8
-77 (= 179)
= 0b1011_0011
= 0o263
= 0xb3
数的符号性会影响当操作数宽度不同时的扩展方式
> 32u8 + (-1)'i4
31
= 0b0001_1111
= 0o037
= 0x1f
> 32u8 + (-1)'u4
47
= 0b0010_1111
= 0o057
= 0x2fa
值不仅可以是整数,也可以包含小数部分
> 10/4
2.5 (= 5/2)
= 0b10.1
= 0o2.4
= 0x2.8
默认情况下,精度是无限的,如果值不能由有限位数表示,则无限重复的数字序列将被括号括起来
> 1/3
0.(3) (= 1/3)
= 0b0.(01)
= 0o0.(25)
= 0x0.(5)
如果指定了小数宽度,则小数部分将被截断
> 1/3q.8
0.332_031_25 (= 85/256)
= 0b0.0101_0101
= 0o0.252
= 0x0.55
对于未指定整数宽度的负数,在非十进制基数下整数部分将显示无限重复的数字
> -5.25
-5.25 (= -21/4)
= 0b(1)010.11
= 0o(7)2.6
= 0x(f)a.c
依赖关系
~2–12MB
~136K SLoC