我是二进制转换的新手。 我每天都使用Python,Bash和AWK。
我想在这些语言中看到二进制转换的应用程序。 例如,我对你在工作中解决的问题感兴趣。
你在Python / Bash / AWK中使用二进制转换的地方在哪里?
我想看看代码示例。
答案 0 :(得分:3)
在命令行上使用Python将二进制数字字符串转换为数字:
binary=00001111
DECIMAL=$(python -c "print int('$BINARY', 2)")
echo $decimal
请参阅int function的文档。
哦,等等,我误解了这个问题,你想知道转换成二进制文件的原因是什么。那么,这取决于你的意思是“转换为二进制”。假设我想存储一个包含一百万个整数的文件。整数将介于0到32,000之间。如果我将它们存储为文本,则每个数字最多需要两个字节(单个数字和一个分隔符),最差的是六个字节(五位数和一个分隔符),平均大小为每个数字4.6个字节(看数学评论)。我也没有简单的方法来选择第15个数字。如果我将它们存储为16位整数(二进制),则每个数字将占用恰好两个字节,我可以通过seek
找到第15个数字来偏移2*(15-1)
并读取两个字节。此外,当我在基于文本的版本上进行数学运算时,我(或我的语言)必须首先将字符串转换为数字,而二进制版本已经是16位数字。
因此,简而言之,您使用二进制类型
答案 1 :(得分:2)
在shell中,很好地使用了dc
:
echo 2i 00001111 pq | dc
2i表示:输入数字的基数为2 。
pq表示:打印并退出。
另一种方式是:
echo 2o 15 pq | dc
我不记得在实际情况中使用过此功能。
答案 2 :(得分:0)
在较新版本的Python中存在bin()
函数,我认为它接受一个int并返回一个二进制文字,形式为0b011010
或其他。