bash-进制转换

十进制转其他进制

echo "obase=16;3268437401835405340"|bc
2D5BD2800300001C

obase 后边输入要转换的进制;其中`bc为外部命令,没有时需要自行安装

其他进制转10进制

((num=2#1001));echo $num;
9

其他进制转10进制,例子是2进制转10进制;若要将16进制转化为10进制,就将上例中的2换成16;

在 Linux 系统中,可以使用多种方法进行进制转换。以下是常见的几种方式: ### 1. 使用 `printf` 命令进行进制转换 `printf` 是一个非常灵活的命令,可以用于将数字从一种进制转换为另一种进制。 - **十进制转十六进制** ```bash printf '%X\n' 255 ``` 这条命令会将十进制数 `255` 转换为十六进制并输出 `FF` [^2]。 - **十六进制转十进制** ```bash printf '%d\n' 0xFF ``` 这条命令会将十六进制数 `FF` 转换为十进制并输出 `255` [^1]。 - **八进制转十进制** ```bash printf '%d\n' 0377 ``` 这条命令会将八进制数 `0377` 转换为十进制并输出 `255` [^1]。 - **二进制转十进制** ```bash echo $((2#11111111)) ``` 这条命令会将二进制数 `11111111` 转换为十进制并输出 `255` [^1]。 ### 2. 使用 `bc` 命令进行进制转换 `bc` 是一个支持任意精度计算的计算器语言工具,常用于复杂的数学运算和进制转换- **安装 bc(如果未安装)** ```bash sudo yum -y install bc ``` - **十六进制转十进制** ```bash echo 'obase=10;ibase=16;AB' | bc ``` 这条命令会将十六进制数 `AB` 转换为十进制并输出 `171` 。 - **十进制转十六进制** ```bash echo 'obase=16;17' | bc ``` 这条命令会将十进制数 `17` 转换为十六进制并输出 `11` [^1]。 - **十进制转二进制** ```bash echo 'obase=2;17' | bc ``` 这条命令会将十进制数 `17` 转换为二进制并输出 `10001` [^1]。 - **二进制转十进制** ```bash echo 'ibase=2;10001' | bc ``` 这条命令会将二进制数 `10001` 转换为十进制并输出 `17` 。 - **十六进制转二进制** ```bash echo 'obase=2;ibase=16;A' | bc ``` 这条命令会将十六进制数 `A` 转换为二进制并输出 `1010` [^1]。 - **二进制转十六进制** ```bash echo 'ibase=2;obase=16;1010' | bc ``` 这条命令会将二进制数 `1010` 转换为十六进制并输出 `A` [^1]。 ### 3. 使用 shell 内置表达式进行进制转换 除了 `printf` 和 `bc`,还可以使用 Bash 的内置表达式来进行简单的进制转换- **十六进制转十进制** ```bash echo $((16#FF)) ``` 这条命令会将十六进制数 `FF` 转换为十进制并输出 `255` [^1]。 - **八进制转十进制** ```bash echo $((8#377)) ``` 这条命令会将八进制数 `377` 转换为十进制并输出 `255` 。 - **二进制转十进制** ```bash echo $((2#11111111)) ``` 这条命令会将二进制数 `11111111` 转换为十进制并输出 `255` [^1]。 ### 4. 注意事项 - 在使用 `bc` 时,`ibase` 用于设置输入进制,`obase` 用于设置输出进制。 - 如果没有明确指定 `ibase` 或 `obase`,它们的默认值是 `10`(即十进制)。 - 某些情况下,`ibase` 和 `obase` 的设置可能会相互影响,例如在设置 `ibase=2` 后再设置 `obase=16`,此时 `obase` 实际上会被解释为二进制中的 `16`,而不是十进制中的 `16` [^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值