我在Bash shell 十进制转二进制的问题中看到了以下代码,并想知道它是如何工作的? 我试着去谷歌搜索,但没找到答案。
D2B=({0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1})
echo ${D2B[7]}
上面的代码是做什么用的?
我在Bash shell 十进制转二进制的问题中看到了以下代码,并想知道它是如何工作的? 我试着去谷歌搜索,但没找到答案。
D2B=({0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1})
echo ${D2B[7]}
另外一个提示:这个结构相当通用,适用于任何基于n的数字系统,其中n最大为9。以八进制为例:
$ D2O=({0..7}{0..7}{0..7}{0..7})
$ echo ${D2O[7]}
0007
$ echo ${D2O[8]}
0010
$ echo ${D2O[668]}
1234
$ echo ${D2O[4095]}
7777
与在Bash shell 十进制转二进制中所解释的方式一样,可以消除前导0:
echo $((10#${D2O[7]}))
7
00000000 00000001 00000010 ... 11111101 11111110 11111111
。在该数组中,D2B所在位置代表其对应的十进制值。 - CyrusD2B=({0,1}{0,1}{0,1}{0,1}{0,1}{0,1}{0,1}{0,1})
。 - Cyrusecho "${D2B[@]}"
(双引号很重要)。 - Caseytac
(即反向cat),则可以将它们转换为小端。但是,如果没有进一步的转换,您仍然无法将其保存为二进制文件。 - Casey