我要求有一个带小数值的字符串。例如,' 0 2930 0'。现在,当我将其转换为十六进制时,它应该说&00; 0000 0B72 0000'我可以使用split和obase = 16将值转换为十六进制,使用bc,我将得到答案为' 0 B72 0'。我需要的是获得价值&00; 0000 0B72 0000'。任何人都可以帮忙解释一下吗?
以下是我所做的:
s1 ='2930'
echo after converting it to hexadecimal
s=`echo "obase=16; $s1" |bc`
echo $s
答案 0 :(得分:5)
使用printf
以所需格式获取输出:
$ printf "%04x " 0 2930 0
0000 0b72 0000
答案 1 :(得分:2)
使用bc,
WANTED=456 ; echo "obase=16 ;$WANTED"|bc
和倍数
WANTED="{456 ;12 ;32000}" ; echo "obase=16 ;$WANTED"|bc