首页 > 解决方案 > 如何在 AWK 中将十进制值转换为十六进制值并存储在变量中?

问题描述

我正在编写一个 AWK 脚本,我正在尝试将十六进制结果作为十六进制存储到变量中。

问题是计算完成后,我变成了一个十进制数作为返回值,我需要将其转换为十六进制。

代码如下:

number1 = 0x803FEFFF
number2 = 0x803FEAE0

# tempAddition is decimal 1311, but I need the hexadecimal format which should be 51F.
tempAddition = (strtonum(number2) + strtonum(number1))

我需要将结果以十六进制形式存储在 tempAddition 变量中。

如果您知道如何在 AWK 中编写转换,请告诉我

标签: awk

解决方案


使用sprintf,例如:

tempAddition = sprintf("0x%X", number1 + number2)

由于您已将number1and声明number2为数字,因此您不需要strtonum它们,但为了tempAddition用作数字,您将需要它。


推荐阅读