转换为十进制数字在Linux上,十六进制,八进制和二进制

Linux提供命令将数据从一个到另一个基地。学习如何使用这些命令,如何使这一过程更容易与脚本和别名。

  • 在Facebook上分享
  • 在Twitter上分享
  • 分享在LinkedIn
  • 在Reddit分享
  • 通过电子邮件分享
  • 印刷资源
加密>加密数据/十六进制代码
Matejmo /盖蒂图片社

你可能不是挑战经常把数字从一个编号系统到另一个,但当你时,你可以用两种Linux命令行上相当容易的命令。

将在你的头可以征税,尤其是对长数字。而十进制编号系统允许任何数字在许多有十值(0 - 9)数字在十六进制数字可以有16(养成),数字在八进制数字只有8个(鹿)和数字在二进制数只有两个(0 - 1)。

不管你喜欢与否,有时你可能会遇到数字显示在十六进制或八进制,并知道如何从一个数字基地将其转换到另一个可以派上用场。

开始,小数5到16的四个编号系统看起来像这样:

5 6 7 8 9 10 11 12 13 14 15 16 < = =小数
5 6 7 8 9 10 b e c d f < = =十六进制5 6 7 10 11 12 13 14 15 16 17 20 < = =八进制101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 < = =二进制

使用printf命令转换为十进制数字

将十进制与十六进制的数字时,您可以使用一个printf如下所示的命令转换十进制15到十六进制:

printf“x % \ n”15美元

转换为八进制,将“% x”(十六进制)替换为“% o”(八进制):

printf“% o \ n”15美元17

17所示的上面的第二个例子中,回想一下,第一个数字(1)有一个十进制值8第二(7)值为7。因此,八进制的结果等于十进制15。

很容易把这些转换成脚本。这里有两个脚本,将提示输入要转换,然后运行printf命令来执行转换。

dec2hex

# !/bin/bash echo - n”输入一个十进制数>“阅读数量printf“x % \ n”数美元

dec2oct

# !/bin/bash echo - n”输入一个十进制数>“阅读数量printf“% o \ n”数美元

注意:printf命令没有转换成二进制的选择。

使用公元前命令转换为十进制数字

使用公元前(计算器)命令,你可以做同一类型的转换与类似如下所示的命令。

第一个例子将十进制数转换为16到基地16(十六进制)。因为在十六进制从右边第二个数字代表了16 s位置(这是小数16),1表示十进制16。“obase”意味着“输出基地”。这是你想要转换的数字格式。因为“ibase”不提供(输入基地),那么它将被认为是小数。

美元回声”obase = 16;公元前16”| 10

下一个命令将八进制数相同。以来,在八进制,从右边第二个数字代表了十进制8秒的位置,2表示十进制16 (2 8 s)。

美元回声”obase = 8;公元前16”| 20

下一个更大的数量,得到21个十进制小数17日8 s,一个1的结果。

美元回声”obase = 8;公元前17”| 21

公元前命令一样作用于二进制与十六进制,八进制,所以我们也可以将数字转换为二进制。这是命令显示十进制16个二进制数:

美元回声”obase = 2;16“|公元前10000年

描述在基地10,这是一个16岁,没有8秒,没有4 s,没有2 s,没有1 s。

在双星系统开始使用的,因为它直接与电子产品的开/关状态,八进制和十六进制系统提供简单的转换,使我们人类不需要看长串的0和1。即使这并不限制的操作公元前命令没有问题3处理基地,基地7或任何其他编号,您可能想要试验基地。

美元回声”obase = 3;16“|公元前121年

描述为小数,121在上面的例子中代表一个9,两个3和一个1。这是基地7版本:

美元回声”obase = 7;公元前16”| 22

上面的数字代表两个小数7和两个1。

将数字转换为小数公元前

综上所述,您还可以使用公元前命令将数字表示十六进制,八进制,十进制或二进制。只是指定obase(输出基地)值为10,ibase(输入基地)16如果开始的十六进制数,8如果八进制和2如果是二进制的例子所示。

obase = 10美元回声”;ibase = 16;F”|公元前15美元的回声”obase = 10;ibase = 8;公元前15”| 13美元回声“obase = 10;ibase = 2;公元前112年“| 7

在早些时候的场景中,将这些命令转化为脚本只需要一点努力。

hex2dec

# !/bin/bash echo - n”输入一个十六进制数>“读数字回声”obase = 10;ibase = 16;美元数字”| bc

oct2dec

# !/bin/bash echo - n”输入一个八进制数>“读数字回声”obase = 10;ibase = 8;美元数字”| bc

bin2dec

# !/bin/bash echo - n”输入一个二进制数>“读数字回声”obase = 10;ibase = 16;美元数字”| bc

使用别名数基转换

在上面所示的脚本很容易设置,可能最方便实现任何显示的转换的方法是把他们作为一个群体的别名。添加下面的别名~ / . bashrc文件会使他们可以在你的下一个登录或只要你源文件(例如,通过运行。~ / . bashrc)。

#从十进制转换别名dec2hex = f(){回声”obase = 16;ibase = 10;公元前1美元”|;设置- f f;};的别名dec2oct = f(){回声”obase = 8;ibase = 10;公元前1美元”|;设置- f f;}; f’ alias dec2bin=’f(){ echo “obase=2; ibase=10; $1” | bc; unset -f f; }; f’ # convert to decimal alias hex2dec=’f(){ echo “obase=10; ibase=16; $1” | bc; unset -f f; }; f’ alias oct2dec=’f(){ echo “obase=10; ibase=8; $1” | bc; unset -f f; }; f’ alias bin2dec=’f(){ echo “obase=10; ibase=2; $1” | bc; unset -f f; }; f’

之后,您可以运行这样的别名:

dec2hex 15 F dec2oct 15美元17 dec2bin 15 1111美元hex2dec F 15 oct2dec 17 15 bin2dec 1111美元15美元

总结

将数据从一个编号系统到另一个可能很乏味,但你可以节省很多麻烦使用printf公元前命令,特别是如果你他们设置为脚本或别名。

相关:

版权©2022 IDG通信公司。Raybet2

企业网络2022的10个最强大的公司