【发布时间】:2023-03-06 19:13:02
【问题描述】:
我正在尝试使用 gawk 将负十进制转换为最大长度为 8 的十六进制,如下所示:
echo -1 | awk '{printf "%08X\n", $1}'
在 HP-UX 11.31 机器上,这给了我:
FFFFFFFF
在带有 gawk 的 Linux 机器中,这给了我:
FFFFFFFFFFFFFFFF
有没有办法用gawk限制结果的长度?
谢谢。
【问题讨论】:
-
这就是 32 位和 64 位计算的区别。您可以使用
{printf "%08X", $1 & 0xFFFFFFFF}获得 32 位结果。