核心思想:1)拼出16进制字符串
2) shell中变量都是字符串
printf "\x""3A"
array(0x12 0xAB 0xCD)
sendarray()
{
hex=(0 0)
hexindex=0
for var in ${array[@]}
do
val_h=$[ (($var)) / 16 ]
val_l=$[ (($var)) % 16 ]
hexindex=0
for hex_value in $val_h $val_l
do
case $hex_value in
10)
tmp=A
;;
11)
tmp=B
;;
12)
tmp=C
;;
13)
tmp=D
;;
14)
tmp=E
;;
15)
tmp=F
;;
*)
tmp=$hex_value
;;
esac
hex[(($hexindex))]=$tmp
let hexindex=$hexindex+1
done
echo '$hex'
echo ${hex[0]}${hex[1]}
printf "\x"${hex[0]}${hex[1]}
done
}
本文详细介绍了如何使用Shell脚本将数组中的数值转换为16进制字符串的过程。通过具体示例,展示了如何分解数值为高位和低位,再将其转换为16进制字符,并最终形成完整的16进制字符串。文章深入浅出,适合对Shell脚本和16进制转换感兴趣的读者。

1421

被折叠的 条评论
为什么被折叠?



