文章目录
前言
在Linux日常使用中,我们有时需要进行进制间的转换,下面我对此进行了一番整理,希望对各位有所帮助。
一、使用bc命令进行转换
在大多数 Linux 发行版中,bc 工具已经预装或者可以通过包管理器进行安装。
十进制转换成其他进制
语法 echo "obase=目标进制;decimal_number" |bc
#十进制转二进制echo "obase=2; decimal_number" | bc
#十进制转八进制echo "obase=8; decimal_number" | bc
#十进制转十六进制echo "obase=16; decimal_number" | bc
其他进制转换为十进制
语法 echo "ibase=目标进制; 待转换进制数 "|bc
#二进制转十进制echo "ibase=2; binary_number" | bc
#八进制转十进制echo "ibase=8; octal_number" |bc
#十六进制转十进制echo "ibase=16; hexadecimal_number" | bc
二、使用printf命令进行转换
%b、%o 和 %x 是 printf 命令中用于格式化输出的转换字符,分别表示二进制、八进制和十六进制的输出格式。
具体来说
%b 用于将整数以二进制格式输出。
%o 用于将整数以八进制格式输出。
%x 用于将整数以十六进制格式输出,字母为小写字母。
十进制转换成其他进制
# 将十进制数 10 输出为二进制格式
printf "%b\n" 10# 将十进制数 10 输出为八进制格式
printf "%o\n" 10# 将十进制数 10 输出为十六进制格式
printf "%x\n" 10
printf命令本身不能直接将二进制转换为十进制,要将二进制转换为十进制,需要使用其他方法。
总结
以上就是今天要讲的内容,本文简单介绍了Linux中如何利用bc和printf进行进制间的转换,此外我们还可以在Bash脚本中进行进制转换,我便不一一赘述,。