bc支持十六进制计算吗?

bc支持十六进制计算吗?

我正在尝试hex直接使用 进行计算bc,我已经指定了比例。

echo 'scale=16;c06b1000-c06a5e78' | bc

但我还是得了零分。可能出什么问题了?

答案1

echo 'ibase=16;C06D1000-C06A5E78' | bc
176520

请注意,仅支持大写十六进制数字,因为小写十六进制数字会与函数和变量名称冲突,这就是示例中得到 0 的原因 ( var1 - var2)

如果您也需要十六进制的答案,只需设置obase变量:

echo 'obase=16;ibase=16;C06D1000-C06A5E78' | bc
2B188

PS:仅供参考,scale不是为转换基础而设计的。从man bc

scale defines how some operations use digits after the decimal point.
The default value of scale is 0.

相关内容