如何在 Ubuntu 中将十进制转换为十六进制?

如何在 Ubuntu 中将十进制转换为十六进制?

我在 Ubuntu 中使用一个 bash 文件,并且我在这个文件中编写了一个必须使用一些十六进制数的可执行代码。

但我只有十进制数,所以我想通过某些命令自动将十进制数转换为十六进制数。

这是我的代码的一部分:

x=1
while [ $x -lt 255 ];do
$tc filter add dev eth0 protocol ip parent 10:0 prio 5 u32 ht 2:$x: \
match ip dst 192.168.67.$x flowid 10:$x
x=$(( $x + 1 ))
done

在本部分中,我的代码中的“u32 ht 2:$x:”必须为十六进制形式,而在其他部分中必须为十进制形式。但我的问题是十六进制形式。我如何在代码中将其转换并使用它?

答案1

将十进制数转换为十六进制的命令是:

echo "obase=16; decimal-number"|bc  

在哪里十进制数替换十进制数。GNUbc是一种交互式计算器语言。obase定义输出数字的转换基数。

提示用户输入数字的替代命令:

printf "Type a number: " && read dec && printf -v hex "%x" $dec && echo $hex  

答案2

您可以使用 awk丝绒图书馆

$ velour -n 'print n_baseconv(15, 10, 16)'
F

或者:

$ velour -n 'print n_baseconv(ARGV[1], 10, 16)' 15
F

相关内容