Linux/UNIX shell中如何将数字转换为十六进制数


在Linux中,可以使用bc,print等命令,将数字的进制进行转换。

bc句法

使用以下bc语法来转换数字的进制:

1
2
3
4
5
# 将10进制转换为8进制
echo "obase=8; ibase=10; 需转换的十进制数" | bc
 
## 将8进制数转换为16进制
echo "obase=16; ibase=8; 27" | bc

其中:

  • obase =设置输出基数(例如2、8、10、16)
  • ibase =设置输入基数(例如2、8、10、16)
  • 27 =需要转换的数字。

printf命令语法

您还可以使用printf命令转换数字的进制:

1
2
## 将0x100转换为8进制
printf "%o\n" 0x100

输出示例:

1
400

或者

1
2
## 将10进制123转换为16进制
printf "%x\n" 123

输出示例:

1

十六进制数必须以0x为前缀,hexadecimal
八进制数必须以0为前缀。 octal
十进制正常写法。decimal


原文链接:https://codingdict.com/