shell 编程进制转换

shell脚本在处理数据的时候,默认是10进制,通过特殊的标记或者前缀可以转换为其他的进制。

以 0 开头就是 8 进制.以0x 开头就是16 进制数.

1. 使用 BASE#NUMBER 这种形式可以表示其它进制.BASE值的取值范围:2-64.

2. 赋值时候用(())符号。不能直接用=号了。=号没有值类型。默认将后面变成字符串了.

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

  • 十进制转换为其他进制

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

八进制转十进制:

[email protected]:/home/baohua# echo $((num = 0123))
83


[email protected]:/home/baohua# echo $((num = 8#123))
83

十六进制转十进制:

[email protected]:/home/baohua# echo $((num=0xff))
255

[email protected]:/home/baohua# echo $((num=16#ff))
255

二进制转十进制

[email protected]:/home/baohua# echo $((num=2#11111111))
255

base-32转十进制:

[email protected]:/home/baohua# echo $((num=32#ffff))
507375

base64转十进制:

[email protected]:/home/baohua# echo $((num=64#ffff))
3994575



  • 其他进制转换为十进制
十进制转八进制

bc外部命令完成。bc命令格式转换为:echo "obase=进制;值"|bc. 二进制,十六进制,base64转换为 十进制也相同方法.

[email protected]:/home/baohua# echo "obase=8;0123"|bc
173

[email protected]:/home/baohua# echo "obase=2;0123"|bc
1111011

 

在赋值运算中,不能再用=号,需要(())来进行赋值才可以达到进制转换,另外也可以通过定义符:let达到(()) 运算效果.

[email protected]:/home/baohua# let num=0123;
[email protected]-VirtualBox:/home/baohua# echo $num
83

原文地址:https://www.cnblogs.com/rykang/p/11880609.html

时间: 2024-10-10 03:54:16

shell 编程进制转换的相关文章

shell进制转换

使用 Shell 运算进行进制转换 假定在您的脚本中有一些数字,您需要以另外的进制处理这些数字.使用 Shell 运算可以很容易地自动实现这类转换.一种情况是使用 Shell 运算把一个数字从给定的进制转换位十进制.如果数字以运算展开式的形式提供,那么假定它带有十进制符号,除非 它前面带有 0(这种情况假定是八进制)或 0x(这种情况假定是十六进制).键入以下内容以得到一些八进制和十六进制值的十进制输出: $ echo $((013)) $ echo $((0xA4)) 您还可以使用以下格式指定

[编程题-华为]进制转换

[编程题] 进制转换 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串.(多组同时输入 ) 输入描述: 输入一个十六进制的数值字符串. 输出描述: 输出该数值的十进制字符串. 输入例子: 0xA 输出例子: 10 #include<iostream> #include<string> using namespace std; int toDigit(char c) { if(c>='a' && c<='f') return c-'a'

编程算法基础-2.3进制转换

2.3进制转换 使用int存一个整数时.内存中是用二进制存储的,当要显示的时候.用十进制显示. 随意进制间的转换 n进制转m进制 String s = "2001201102" 3进制转换为5进制 先转换为2进制.再转换为5进制 /* 随意进制间的转换 n进制转m进制 String s = "2001201102" 3进制转换为5进制 先转换为10进制,再转换为5进制 */ package BinaryTrans; public class NToM { publi

CSDN编程挑战——《进制转换》

进制转换 题目详情: 我们通常用的十进制数包含0-9十个数字.假设有一种进制系统包含3种数字,从低到高分别为"oF8",那么从1到9分别表示为F, 8, Fo, FF, F8, 8o, 8F, 88, Foo, FoF.给定一种进制的数和两种进制的数字表,请把它从第一种进制转换为第二种进制. 输入格式: 第一行是T表示测测试数据组数.(0<T<=200). 以后T行,每行有3个部分: number number_table1 number_table2 其中number_t

shell进制转换工具

其它进制转换成10进制 ((num=base#digit)) echo $num base8->base10 ((num=8#123)) echo $num 83 base16->base10 ((num=16#ff)) echo $num 255 10进制转换成其它进制 echo "obase=base;num" | bc base10->base2 echo "obase=2;255" | bc 11111111 base10-base8 ec

Erlang 进制转换

http://www.cnblogs.com/me-sa/archive/2012/03/20/erlang0047.html bnot unary bitwise not integer div integer division integer rem integer remainder of X/Y integer band bitwise and integer bor bitwise or integer bxor arithmetic bitwise xor integer bsl a

03 php 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换,算术运算,比较运算

03 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换, 算术运算,比较运算,逻辑运算,短路现象, 三目运算符,字符型运算: 数据类型 整体划分 标量类型: int, float, string, bool 复合类型: array,     object 特殊类型: null,     resouce 整数类型int, integer 3种整数表示法 十进制写法:123: $n1 = 123; 八进制写法: 0123 $n2 = 0123; 十六进制写法: 0x123 $n3

黑马程序员------进制转换

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 在java中数字的表现形式一般有二进制,八进制,十进制,十六进制等,在平时的编程中我们可以通过java提供的API函数方便的实现各个进制间的转换,如:Integer.toHexString(int i)--十进制转十六进制:Integer

常用进制转换

原文:常用进制转换 最近的工作中,需要接触到一些硬件设备,处理这些设备的通讯,因此需要进行一些进制的转换.      其实,二进制.十六进制这些基本的知识,在我们刚学编程的时候,基础课应该已经讲过的了.但是,包括我自己在内,当时也仅仅是知道一般的换算规则,但是具体怎么应用,在c#中又是如何表示,也是近期才有比较深的体会.      具体的知识,各位就自己查看相关的基础知识了,这里我只给出自己在工作中的体会和实际的类库.      首先,先解释下C#的类型.一般,我们常用的有 byte.short