awk - 如何在 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 中编写转换,请告诉我
解决方案
使用sprintf
,例如:
tempAddition = sprintf("0x%X", number1 + number2)
由于您已将number1
and声明number2
为数字,因此您不需要strtonum
它们,但为了tempAddition
用作数字,您将需要它。
推荐阅读
- database - 从 Clojure 中的数据库查询返回键
- c++ - C++ 引用链表调用
- javascript - 如何在 cytoscape.js 中使用节点外的背景图像
- testing - 如何将测试标记为 xfail(预期失败)?
- c - 为什么 printf 在信号处理程序中调用不安全?
- google-maps - Google StreetViewService 报告特定位置的错误状态
- r - 计算具有某些单词的列中的频率
- c# - 使用 c# 中的文本文件替换 pubxml 中的参数
- html - Bootstrap 和 Laravel 列在移动版本上中断
- amazon-web-services - 无法访问正在运行的实例上的域