el@apollo:~$ bc <<< "obase=2;1"
1
el@apollo:~$ bc <<< "obase=2;2"
10
el@apollo:~$ bc <<< "obase=2;3"
11
el@apollo:~$ bc <<< "obase=2;4"
100
el@apollo:~$ bc <<< "obase=2;5"
101
奖金示例:
el@apollo:~$ bc <<< "obase=2;1024"
10000000000
el@apollo:~$ bc <<< "obase=2;2^128"
100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
9条答案
按热度按时间6ljaweal1#
可以将
bc
用作:See it
4szc88ey2#
使用bash内置命令将十进制转换为二进制(范围0到255):
00000111
01010101
01111111
要删除前导零,例如从
${D2B[7]}
中删除前导零:111
这将创建一个
00000000 00000001 00000010 ... 11111101 11111110 11111111
的数组,并使用bash的大括号展开,在数组D2B中的位置表示它的十进制值。另请参阅:Understanding code ({0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1})
deyfvvtc3#
Bash中的十进制到二进制转换:
我用Ubuntu 14.04来做这个。
将小数1到5转换为二进制。
奖金示例:
lztngnrs4#
将整数转换为具有另一个基数的另一种表示法的一般方法(但基数〈=10,因为仅使用数字0..9表示):
例如:
xqnpmsa85#
在bash中定义为函数:
wj8zmpe16#
我喜欢用
dc
来做这个,它非常简洁:此处的命令如下所示:
1.通过shell扩展将数字
n
压入堆栈。1.将2压入堆栈,然后使用
o
弹出堆栈,并使用2作为o输出基数。p
到print堆栈顶部(它就是n
),使用步骤2中设置的输出基数(因此以二进制打印)。如果要填充:
wmtdaxz37#
为了让@codadicate的回答更漂亮一些,可以使用以下代码在输出前加上
0b
作为"binary"的前缀:示例:
输出:
这是十进制46。
有关bash中输入base-2格式的详细信息,例如上面的
2#1111
,请参见我的答案的最后部分:How to use all bash operators, and arithmetic expansion, in bash.要使输出中至少包含8位数字,请使用:
资料来源:David Rankin, in an answer to my question here。
ax6ht2ek8#
任何整数都可以转换为二进制,使用它:
然后复制粘贴以下内容:
例如:
必须加上整数!!
类似地,仅使用bash将十六进制转换为二进制,如下所示:
例如:
必须传递十六进制:
vaqhlq819#