如何在 bash shell 脚本中获取十六进制格式的数字并进行算术运算并以十六进制格式输出?

如何在 bash shell 脚本中获取十六进制格式的数字并进行算术运算并以十六进制格式输出?

在 bash 中,我希望能够输出两个输入值的总和,所有输入和输出字符串以十六进制格式表示如下。
这就是我想要做的。

$ script1 0x80200000 0x800
sum = 0x80200800
$

我应该如何为此编写脚本“script1”?当然这行不通。

sum = $1 + $2
echo "sum = " $sum

答案1

您可以使用算术扩展,它支持0x十六进制值,但以十进制输出,并使用以十六进制打印printf

$ printf "%#X\n" $(( 0x80200000 + 0x800 ))
0X80200800
$ printf "%#x\n" $(( 0x80200000 + 0x800 ))
0x80200800

相关内容