文档章节

Linux Shell 不同进制数据转换

Foundation
 Foundation
发布于 2015/10/16 09:21
字数 554
阅读 194
收藏 4
点赞 0
评论 0

shell可以在不调用第3方命令,表示不同进制数据。这里总结以下表示方法。shell 脚本默认数值是由10 进制数处理,除非这个数字某种特殊的标记法或前缀开头. 才可以表示其它进制类型数值。如:以 0 开头就是 8 进制.以0x 开头就是16 进制数.使用 BASE#NUMBER 这种形式可以表示其它进制.BASE值:2-64.

使用方法:

  • 其它进制转为10进制

八进制转十进制:

1
2
3
4
5
6
[chengmo@centos5 ~]$ ((num=0123));
[chengmo@centos5 ~]$ echo $num;
83
[chengmo@centos5 ~]$ ((num=8#123));
[chengmo@centos5 ~]$ echo $num;
83

((表达式)),(())里面可以是任意数据表达式。如果前面加入:”$”可以读取计算结果。

十六进制转十进制:

1
2
3
4
5
6
[chengmo@centos5 ~]$ ((num=0xff));
[chengmo@centos5 ~]$ echo $num;
255
[chengmo@centos5 ~]$ ((num=16#ff));
[chengmo@centos5 ~]$ echo $num;
255

base-32转十进制:

1
2
3
[chengmo@centos5 ~]$ ((num=32#ffff));
[chengmo@centos5 ~]$ echo $num;
507375

base64转十进制:

1
2
3
[chengmo@centos5 ~]$ ((num=64#abc_));
[chengmo@centos5 ~]$ echo $num;
2667327

二进制转十进制

1
2
3
[chengmo@centos5 ~]$ ((num=2#11111111));
[chengmo@centos5 ~]$ echo $num;
255

 

  • 十进制转为其它进制

十进制转八进制

这里使用到:bc外部命令完成。bc命令格式转换为:echo “obase=进制;值”|bc

1
2
[chengmo@centos5 ~]$ echo "obase=8;01234567"|bc
4553207

二进制,十六进制,base64转换为 十进制也相同方法。

1
2
[chengmo@centos5 ~]$ echo "obase=64;123456"|bc
30 09 00

shell,内置各种进制表示方法非常简单。记得base#number 即可。这里记得赋值时候用(())符号。不能直接用=号了。=号没有值类型。默认将后面变成字符串了。如:

1
2
3
[chengmo@centos5 ~]$ num=0123;
[chengmo@centos5 ~]$ echo $num;
0123

0开头已经失去了意义了。

可以通过定义符:let达到(()) 运算效果。

1
2
3
[chengmo@centos5 ~]$ let num=0123;
[chengmo@centos5 ~]$ echo $num;
83

有其它更好方法,朋友们可以与我分享一下,希望对大家都能有所帮助。

如果想深入体验LINUX系统的新手,也可以先下载一个方德Linux软件中心试用一下。
免费下载地址:http://www.nfs-cloud.cn:81/appCenter/open/softcenter

本文转载自:http://blog.jobbole.com/92962/

共有 人打赏支持
Foundation
粉丝 6
博文 208
码字总数 157873
作品 0
无锡
玩转 SHELL 脚本之:linux date 知多少?

最近好久没 update 了,一来是近期有点烦人的私事需要处理,二来是工作有点忙,业余时间还要整个 PPT,搜集素材啥的,非常耗时间。。。好吧,这都是借口,其实是人变懒了。。。⊙﹏⊙ 不过我...

大数据之路
2013/12/21
0
5
shell中二进制、十进制、十六进制等进制转换

shell中二进制、十进制、十六进制等进制转换 笑遍世界2017-11-261 阅读 ShellLinux Shell脚本中数值都是默认按照十进制处理的,除非这个数值做了特殊标记,如:以 0 开头就是 8 进制数,以0...

笑遍世界
2017/11/26
0
0
Android 【真机】与【模拟器】触摸屏事件的模拟差异分析

Android 真机和模拟器的差异问题,是永恒的话题,问不完的为什么,解不完的迷。模拟器的存在,有它的作用,但不要什么都相信模拟器。除非你是Android纯上层应用开发人员或者爱好者,否则我建...

晨曦之光
2012/02/10
0
0
Linux 命令行下的数学运算

有几个有趣的命令可以在 Linux 系统下做数学运算: 、、 和 命令。 可以在 Linux 命令行下做数学运算吗?当然可以!事实上,有不少命令可以轻松完成这些操作,其中一些甚至让你大吃一惊。让我...

05%
05/14
0
0
总结linux下printf命令的用法

printf -- format and print date 通过printf的选项格式化输出数据 参考: http://www.computerhope.com/unix/uprintf.htm 基本英文学习 二进制:binanry number 八进制:otcal number 十进制:...

cuizhiliang
2017/01/08
0
0
高效Linux用户需要了解的命令

下面介绍的都是一些命令行工具,这些工具在几位回答者的日常工作中都很有用。对于任何不了解的命令,请使用“man <COMMANDNAME>“查看,或者使用Google。有些命令需要先用 yum, apt-get ins...

krircc
2015/06/14
0
2
Linux/unix不同shell环境下数值运算的处理

在阅读本文前,您需要对变量替换、命令替换和数值替换有一点认识。 阅读完本文,您应该获得解决下列问题的信息: 不同shell(bash,csh,ksh)下如何处理数值的运算 常用来数值运算的命令 关于运...

技术小胖子
2017/11/03
0
0
数据的存储与强制类型转换

数据在计算机都是由基本的0、1二进制数表示的. 通过强制转换可以改变数字的类型,使得编译器对待同一地址处的数字会以不同的方式去存储和解释.了解一些底层的细节有助于发现和查找bug. 通过t...

SVD
2016/05/09
139
0
[汇编]神奇的进制转换以及计算器的使用

在学习汇编的时候,可能很多朋友很头疼的就是进制间转换问题 我在这里大概说一下比较简单的转换方法,就是计算器,我只说一下Windows下默认的计算器。Linux的朋友可以在网上搜搜在线的,有很...

陈冠羽
2013/04/22
0
5
Linux shell 编程(六):运算

运算 表达式 表达式包含在或或内, 算数表达式: 条件计算表达式: 在表达式中可以进行进制转换:$((NUMBER#SCALE)),$((10#8)=>8 要得到计算结果,需要在表达时前面加$符号,如:, 区别 命令...

乌龟漫步
04/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
1
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
0
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
0
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
0
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
今天
1
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
0
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
2
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
0
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部