gpt4 book ai didi

awk - 如何使用awk对十六进制数进行计算?

转载 作者:行者123 更新时间:2023-12-04 13:02:08 29 4
gpt4 key购买 nike

我有一个包含十六进制数字列表的文件,为0x12345678每行一个。

我想对它们进行计算。为此,我想到了使用awk。但是,如果使用awk函数可以轻松地使用printf打印十六进制数字,那么除了用文本(或0,到x的停止转换为整数)之外,我没有找到一种方法来解释十六进制输入。

awk '{ print $1; }'                     // 0x12345678
awk '{ printf("%x\n", $1)}' // 0
awk '{ printf("%x\n", $1+1)}' // 1 // DarkDust answer
awk '{ printf("%s: %x\n", $1, $1)}' // 0x12345678: 0

是否可以打印,例如值+1?
awk '{ printf(%x\n", ??????)}'          // 0x12345679

编辑:欢迎使用其他语言的类轮! (如果长度合理;-))

最佳答案

在原始的nawkmawk实现中,将识别十六进制(和八进制)数字。 gawk(我猜您正在使用)具有不执行此操作的功能/错误。它具有一个命令行开关来获取所需的行为:--non-decimal-data

echo 0x12345678 | mawk '{ printf "%s: %x\n", $1, $1 }'
0x12345678: 12345678

echo 0x12345678 | gawk '{ printf "%s: %x\n", $1, $1 }'
0x12345678: 0

echo 0x12345678 | gawk --non-decimal-data '{ printf "%s: %x\n", $1, $1 }'
0x12345678: 12345678

关于awk - 如何使用awk对十六进制数进行计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3683110/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com