我有一个要求有一个具有十进制值的字符串。例如,"0 2930 0"。现在,当我将其转换为十六进制时,它应该说'0000 0B72 0000'。我能够使用 split 将值转换为十六进制,使用 bc 将 obase=16 转换为十六进制,我会得到答案为"0 B72 0"。我需要的是获取值"0000 0B72 0000"。谁能帮忙阐明这一点?
这是我所做的:
s1 ='2930'
echo after converting it to hexadecimal
s=`echo "obase=16; $s1" |bc`
echo $s
使用 printf
获取所需格式的输出:
$ printf "%04x " 0 2930 0
0000 0b72 0000
使用 bc 作为你所拥有的,
WANTED=456 ; echo "obase=16 ;$WANTED"|bc
和倍数
WANTED="{456 ;12 ;32000}" ; echo "obase=16 ;$WANTED"|bc