`

Linux shell 进制转换

 
阅读更多

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

 

使用方法:

  • 其它进制转为10进制

八进制转十进制:

[chengmo@centos5 ~]$ ((num=0123));
[chengmo@centos5 ~]$ echo $num;
83

[chengmo@centos5 ~]$ ((num=8#123));
[chengmo@centos5 ~]$ echo $num;    
83

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

十六进制转十进制:

[chengmo@centos5 ~]$ ((num=0xff)); 
[chengmo@centos5 ~]$ echo $num;    
255
[chengmo@centos5 ~]$ ((num=16#ff));
[chengmo@centos5 ~]$ echo $num;    
255

base-32转十进制:

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

base64转十进制:

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

二进制转十进制

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

 

  • 十进制转为其它进制

十进制转八进制

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

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

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

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

 

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

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

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

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

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

 

 

endTime=0008

endTime=$((10#endTime)) -->./test1: line 13: 10#endTime: value too great for base (error token is "10#endTime")

 

endTime=$((10#${endTime})) --> output is: 8

 
分享到:
评论

相关推荐

    shell二进制转换为十进制的脚本

    找到的一个不错的脚本,自己稍作修改,跟大家一起分享!

    linux shell 实现IP和数字的转换

    下面我们将详细介绍如何使用Linux Shell实现这两种IP地址形式的转换。 首先,我们要了解IP地址的十进制表示。一个IP地址由4个八位字节组成,每个字节的范围是0到255。例如,IP地址192.168.1.1可以转换为十进制整数...

    Linux命令之bc--浮点计算器、进制转换

    ### Linux命令之bc -- 浮点计算器、进制转换 #### 概述 在Linux环境中,用户经常需要处理各种计算任务。尽管Bash环境已经具备了处理整数运算的能力,但对于涉及浮点数的复杂计算,则显得力不从心。这时,`bc` 命令...

    Hex-conversion.zip_conversion_linux 十六进制

    此外,Linux还提供了许多内置工具来进行十六进制转换,例如`od`(octal dump)命令可以用于将十进制数转换为十六进制字符串,`bc`计算器支持各种数值计算,包括十进制到十六进制的转换。这些工具在日常开发和调试中...

    shell实现netmask掩码和cidr掩码位转换1

    shell实现netmask掩码和cidr掩码位转换 Shell 实现 Netmask 掩码和 CIDR 掩码位转换是一种常用的网络协议 软件/插件,经常在写脚本时...* 《Unix/Linux Shell 编程》 * 《网络协议基础》 * 《Shell 脚本编程技术》

    linux 下读取文件并输出其 16 进制

    `hexdump`是Linux内建的一个命令行工具,它能够将文件内容转换成16进制格式显示。使用方法如下: ```bash hexdump -C filename ``` 这里`-C`选项表示以彩色格式输出,便于查看。它会显示每16个字节的数据以及对应...

    Shell转换成C

    在Unix/Linux环境中,为了增强脚本的安全性,有时我们需要将Shell脚本转换成C语言代码,然后编译成可执行程序。这个过程主要是利用一种工具,例如`shc`(Shell to C Compiler),它能够将Bash或其它Shell脚本转化为C...

    在linux环境中将Excel转换成文本的命令

    自动化任务以shell为例,shell不能直接操作Excel文档,需要将Excel转换成文本然后在解析和分析,我使用GO语言开发编译成二进制命令,上传到服务器当命令使用。

    给linux的shell脚本加密(ZT).rar_Linux shell_shell 脚本_shell加密_shell脚本

    可以使用一些工具(如shc - Shell Script Compiler)将脚本转换为编译过的二进制形式,使得原始代码难以理解。shc将Shell脚本转换为一个可执行的C程序,这个程序包含了加密后的脚本内容。 2. **使用加密容器**:...

    Linux Shell脚本系列教程(五):数学运算.docx

    bc 工具也可以进行进制转换。例如: no=100 echo obase=2;$no | bc obase 为目标进制,ibase 为原进制,默认情况下原进制为 10。 bc 工具还可以计算平方根和平方。例如: echo sqrt(100) | bc echo 10^10 | bc ...

    Linux Shell脚本编程基础

    本文还提供了两个示例脚本:二进制到十进制的转换和文件循环拷贝。 6. 脚本调试 Shell脚本的调试是非常重要的,可以使用echo语句来输出变量的值和命令的执行结果,从而帮助我们了解脚本的执行过程。 本文对Linux...

    linux处理10万个二进制文件

    总之,Linux Shell和`awk`命令提供了一种高效的方式来处理二进制文件,包括读取特定字节、进行数学运算以及修改文件内容。对于大规模的二进制文件操作,这种自动化处理方式尤其重要,能够显著提高工作效率。在实际...

    shellex:C-shellcode 到十六进制转换器,在 gdb、windbg、radare2、ollydbg、x64dbg、免疫调试器和 010 编辑器中粘贴和执行 shellcode 的便捷工具

    Shellex 警告:世界上最丑的代码C-shellcode 到十六进制转换器。 在 gdb、windbg、radare2、ollydbg、x64dbg、immunity debugger 和 010 编辑器中粘贴和执行 shellcode 的便捷工具。 您在将 C-shellcode 转换为 HEX ...

    Linux系统管理-shell基础1.pdf

    Linux系统管理中的Shell基础主要涉及对Shell这一概念的理解和运用。Shell是用户和操作系统之间交互的一种接口,它提供了一个命令行界面,允许用户输入命令并执行。Shell能够解释用户输入的命令,并调用相应的系统...

    linux_shell编程实例与参数分析

    `umask`的计算方式是取反并加7,所以`002`取反加7得到`664`(二进制的`002`对应十进制的2,取反为`111`,加7即`111+010=111`,转换为八进制就是`664`)。 接下来,我们讨论`ln`命令,它用于创建链接。`ln source...

    《linux_shell脚本攻略》学习总结

    例如,可以设置小数精度(`scale=2`),进行进制转换,计算平方和平方根。 6. **stdin、stdout、stderr和tee**:在Linux中,0代表stdin,1代表stdout,2代表stderr。`tee`命令可以将数据同时输出到屏幕和文件,`-a`...

    UNIX新手指南_一些很好的Shell诀窍_au-unixtips4-pdf.pdf

    在Shell编程中,进制转换是常见的需求。例如,你可以使用内置的expr命令或awk工具来完成这些转换。在Shell脚本中,这些转换可以帮助你处理不同格式的数字信息,特别是在处理文件属性或进行系统配置时。 管道和循环...

    linux shell Sed学习笔记

    ### Linux Shell Sed 学习笔记:深入理解与实践 #### Sed 概览 Sed(Stream Editor)是一种功能强大的文本处理工具,适用于Unix/Linux环境下的流编辑操作。它能够读取输入流(如文件或标准输入),进行模式匹配、...

    Linux_Shell编程基础

    目录 • 1 变量赋值和引用 2 Shell 里的流程控制 o 2.1 if 语 句 o 2.2 && 和 || 操作符 o 2.3 case 语句 o 2.4 select 语句 o 2.5 while/for 循环 ...o 6.1 二进制到十进制的转换 o 6.2 文件循环拷贝 • 7 脚本调试

    Linux-Shell特殊字符和控制字符大全

    - `echo $((2#101011))`:此处`#`用于二进制数制转换。 ##### 2. `;` 分隔符 - **用途**:用于在同一行中分隔多个命令。 - **示例**: - `echo "aa"; echo "bb"`:此行将执行两条命令。 - `if condition; then`...

Global site tag (gtag.js) - Google Analytics