linux极简小知识:30、shell中不同进制的表示和之间的转换(十进制、八进制、十六进制、二进制、任意进制)
highlight: agate theme: channing-cyan
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
数值的进制
Bash中数值默认都是十进制的。
如果想要使用不同的进制,可采用下面的表示形式:
number
:没有任何特殊表示法的数字是十进制数。0number
:数字0开头,表示八进制数。0xnumber
:数字0x开头,表示十六进制数。base#number
:base进制的数,通过base指定是几进制。由此,可以表示任意的进制。
比如下面几种进制:
sh
$ let a=100
$ let b=0100
$ let c=0x100
$ let d=2#100
$ echo "a=$a,b=$b,c=$c,d=$d"
a=100,b=64,c=256,d=4
也可以使用
(())
获取进制值。
进制转换
其他进制转十进制
其他进制转十进制不需要特殊处理,获取值的,其表示形式就是10进制。
接上面的 a、b、c、d 变量。如下,查看其取值时为10进制:
sh
$ let b10=b
$ let c10=c
$ let d10=d
$ echo $b10
64
$ echo $c10
256
$ echo $d10
4
十进制转其他进制
十进制转其他进制需要借助 bc 命令。指定 obase 为几进制。
如下,十进制分别转8、16、2进制。
sh
$ echo "obase=8;$b10" | bc
100
$ echo "obase=16;$c10" | bc
100
$ echo "obase=2;$d10" | bc
100
其他进制间的转换
同样借助 bc 命令
sh
$ echo "obase=2;$c10" | bc
100000000
「其他文章」
- 浏览器的History、Location对象,及使用js控制网页的前进后退和加载,刷新当前页面总结!
- SSIS学习使用十七:多个灵活的来源位置
- 两篇吃透按键事件:你应该了解的js键盘事件和使用注意事项
- Electron无法从淘宝镜像下载安装,报错HTTPError Response code 404 (Not Found)的问题
- SSIS学习使用十五:SSIS参数概述,项目参数,包参数及使用包参数构建动态属性
- SSIS学习使用十四:项目转换概述和转换包部署模型为项目部署模型
- SSIS学习使用十三:SSIS变量概述:变量的介绍使用、断点和状态,指定了多个代码页(1252和936)错误
- SSIS学习使用十一:日志(Logging)
- SSIS学习使用十:高级事件行为
- SSIS学习使用九:控制流任务错误处理
- SSIS学习使用八:高级SSIS工作流管理
- SSIS学习使用七:中级SSIS工作流管理
- SSIS学习使用六:基本的SSIS工作流管理和脚本任务介绍
- SSIS学习使用五:Integration Services增量加载之删除数据
- 关于HTML中table的几个关键点,你应该知道的
- CSS实现井字棋盘效果的N种方法【如何实现只有内部边框的table】
- 记一次抽风的[email protected] Permission denied (publickey)问题【所有可能的解决办法和问题请教】
- SSIS学习使用四:Integration Services增量加载之更新数据
- SSIS学习使用三:Integration Services增量加载之新增数据
- SSIS学习使用二:最基本的数据流任务(处理流程)