我正在学习使用bash进行编码,我想将十进制数转换为二进制数组,问题是我无法计算数组中的元素数。
我的代码是:
read -p 'Ingrese primer numero: ' numero_1
function binario(){
num=$1
arr1=()
i=0
while [ $num -ne 0 ]
do
div=$(($num/2))
rem=$(($num%2))
num=$div
arr1=("$rem" "${arr1[*]}")
echo ${arr1[*]}
done
echo "array 1 es ${arr1[*]}"
echo "largo dentro de la funcion ${#arr1[*]}"
}
binario $numero_1
计数不起作用。在我的控制台中,我获得以下信息:
Ingrese primer numero: 56
array 1 es 1 1 1 0 0 0
largo dentro de la funcion 1
我知道我做错了什么,但我不知道该怎么办, 你能帮我吗?
预先感谢
答案 0 :(得分:4)
将*
替换为@
,以使用该数组的元素填充该数组,而不是将整个数组视为一个元素:
- arr1=("$rem" "${arr1[*]}")
+ arr1=("$rem" "${arr1[@]}")
*
扩展为一个单词,@
扩展为单词列表。