那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了。

先列两种简单的方法:

1) echo 自己就能实现,相当简单。不过,不知道如果要从十进制转换回十六进制能怎么写。

]$ echo $((0xac))
    172

2) printf 也可以哦,十六进制和十进制互相转换都没问题

]$ printf %d 0xac
    172
    ]$ printf %x 172
    ac

然后,稍微麻烦一点的是 bc 这个命令。虽然网上介绍的人很多,可是到底 bc 的那两个参数是怎么用的,还是不太明白,感觉自己也是从结果推原因而已,并不真的明白这个命令的参数如此设计的意义。不管怎样,先把例子写在这里,将来再研究吧。

3) bc 的作用:十六进制和十进制互转,十进制和二进制之间也可以转换。

把十六进制转换成十进制
    ]$ echo 'ibase=16;obase=A; AC'|bc   
    172
    ]$ echo 'ibase=16;obase=1010; AC'|bc   (Linux)
     0172
    > echo 'ibase=16;obase=1010; AC'|bc    (Unix)
    output base is too large
    172

注意这里:在 Unix 里面执行的时候会报这么个错误,但还是会有结果。
    ]$ echo 'ibase=16;AC' | bc 
    172

把十进制转换成十六进制
    ]$ echo 'ibase=10;obase=16;172'|bc 
    AC
    ]$ echo 'obase=16;172'|bc
    AC

把十进制转换成二进制
    ]$ echo 'obase=2;172'|bc         
    10101100
把二进制转换成十进制
    ]$ echo 'ibase=2;10101100'|bc                
    172

貌似 ibase 和 obase 这两个参数的 default 值就是10(十进制),所以似乎如果不写的话,ibase 代表输入的参数是十进制,obase 代表输出的值是十进制。也就是说,不是十进制的时候才注明,似乎这样就不会错了。

恩,再研究研究。

http://blog.sina.com.cn/s/blog_a3052b4a0100z4nk.html

用Linux/Unix命令把十六进制转换成十进制(转)的更多相关文章

  1. C语言十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方

    #include <stdio.h> /* 十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方: 在16进制中:a(A)=10 b(B)=11 c(C)=12 d(D)= ...

  2. Java 第十一届 蓝桥杯 省模拟赛十六进制转换成十进制

    问题描述 请问十六进制数1949对应的十进制数是多少?请特别注意给定的是十六进制,求的是十进制. 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这 ...

  3. Java中将0x开头的十六进制字符串转换成十进制整数

    1.Integer.toString(int i) 由于input(输入数据)是以0x开头的字符串,并不是整型.因而在用 String s = Integer.toString(input); 时用会 ...

  4. linux c/c++ IP字符串转换成可比较大小的数字

    由www.169it.com搜集整理 IP字符串转换成可比较大小的数字,具体代码如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include "stdio. ...

  5. linux环境下deb格式 转换成rpm格式

    linux环境下deb格式 转换成rpm格式 使用alien工具转换deb格式到rpm格式 alien_8.87.tar.gz 下载alien_8.87.tar.gz [root@mysqlnode2 ...

  6. 输入二进制数转换成十进制数(在cin>>和cin.get()上掉的坑)

    题目:输入一个二进制数转换成十进制. 题目分析:书上说,在一般情况下,c++的键盘输入可以识别是十进制数.八进制数和十六进制数,因此输入的二进制数据要作为字符处理.(其实我觉得数字也没问题吧). 正确 ...

  7. Linux xargs将输出数据流转换成命令参数

    200 ? "200px" : this.width)!important;} --> 介绍 我们可以利用管道将一个命令的“标准输出”作为另一个命令的“标准输入”:但是这里的 ...

  8. Linux基础命令---文本格式转换expand,unexpand

    expand 将文件中的tab转换成空格,结果送到标准输出.如果没有指定文件,那么从标准输入读取. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.F ...

  9. 转:linux/unix命令行终端的光标及字符控制快捷键

    from:http://linux.chinaunix.net/techdoc/system/2007/11/23/973027.shtml 在使用linux/unix的命令行终端时,有时候会碰到键盘 ...

随机推荐

  1. 10105 - Polynomial Coefficients

    描述:杨辉三角与二项式定理 #include <cstdio> int solve(int n,int m) { int sum=1; for(int i=n; i>m; --i) ...

  2. OCP读书笔记(11) - 使用闪回技术II

    闪回归档 1. 什么是闪回数据归档? 闪回归档是用来保存一个或多个表的历史数据的新数据库对象,以及该数据的存储保留和清除策略.归档只是保存数据库中一个或多个表的所有事务处理的变化的一个或多个表空间,数 ...

  3. 通过Camera进行拍照

    Android通过Camera来控制拍照,使用Camera比较简单,按步骤进行即可: 下面用一个示例来演示: Activity: package com.home.activity; import j ...

  4. hdu3485(递推)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3485 分析: a[i]表示长度为i,第i位为0的,符合情况的个数. b[i]表示长度为i,第i位为1的 ...

  5. Effective C++ -- 构造析构赋值运算

    05.了解C++默默编写并调用哪些函数 编译产生的析构函数时non-virtual,除非这个类的基类析构函数为virtual 成员变量中有引用和const成员时,无法自己主动生成copy assign ...

  6. 获取Google音乐的具体信息(方便对Google音乐批量下载)

    Google音乐都是正版音乐, 不像百度所有都是盗链, 并且死链也多. 但有一个麻烦就是要下载Google音乐的时候得一个一个的点击下载链接, 进入下载页面再点"下载", 才干下载 ...

  7. 深入了解java同步、锁紧机构

    该薄膜还具有从本文试图一个高度来认识我们共同的同步(synchronized)和锁(lock)机制. 我们假定读者想了解更多的并发知识推荐一本书<java并发编程实战>,这是一个经典的书, ...

  8. java中常用的字符串的截取方法

    java中常用的字符串的截取方法   1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int l ...

  9. 京东商城招聘匹配系统资深工程师 T4级别

    岗位级别:T4 岗位职责: 1.负责匹配系统的架构设计 2.负责网页抽取.实体识别.匹配等算法设计 3.核心代码编写,代码review 任职要求: 1.熟悉机器学习.自然语言处理理论和算法2.三年以上 ...

  10. unity中的MonoBehaviour.OnMouseDown()

    在官网的api文档中仅说明了 Description OnMouseDown is called when the user has pressed the mouse button while ov ...