用Linux/Unix命令把十六进制转换成十进制(转)
那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用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命令把十六进制转换成十进制(转)的更多相关文章
- C语言十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方
#include <stdio.h> /* 十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方: 在16进制中:a(A)=10 b(B)=11 c(C)=12 d(D)= ...
- Java 第十一届 蓝桥杯 省模拟赛十六进制转换成十进制
问题描述 请问十六进制数1949对应的十进制数是多少?请特别注意给定的是十六进制,求的是十进制. 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这 ...
- Java中将0x开头的十六进制字符串转换成十进制整数
1.Integer.toString(int i) 由于input(输入数据)是以0x开头的字符串,并不是整型.因而在用 String s = Integer.toString(input); 时用会 ...
- linux c/c++ IP字符串转换成可比较大小的数字
由www.169it.com搜集整理 IP字符串转换成可比较大小的数字,具体代码如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include "stdio. ...
- linux环境下deb格式 转换成rpm格式
linux环境下deb格式 转换成rpm格式 使用alien工具转换deb格式到rpm格式 alien_8.87.tar.gz 下载alien_8.87.tar.gz [root@mysqlnode2 ...
- 输入二进制数转换成十进制数(在cin>>和cin.get()上掉的坑)
题目:输入一个二进制数转换成十进制. 题目分析:书上说,在一般情况下,c++的键盘输入可以识别是十进制数.八进制数和十六进制数,因此输入的二进制数据要作为字符处理.(其实我觉得数字也没问题吧). 正确 ...
- Linux xargs将输出数据流转换成命令参数
200 ? "200px" : this.width)!important;} --> 介绍 我们可以利用管道将一个命令的“标准输出”作为另一个命令的“标准输入”:但是这里的 ...
- Linux基础命令---文本格式转换expand,unexpand
expand 将文件中的tab转换成空格,结果送到标准输出.如果没有指定文件,那么从标准输入读取. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.F ...
- 转:linux/unix命令行终端的光标及字符控制快捷键
from:http://linux.chinaunix.net/techdoc/system/2007/11/23/973027.shtml 在使用linux/unix的命令行终端时,有时候会碰到键盘 ...
随机推荐
- C语言中scanf/fscanf 的%[]和%n说明符的使用方法
标准输入输出函数%[]和%n说明符的使用方法 scanf fscanf,均从第一个非空格的可显示字符开始读起! 标准输入输出函数scanf具有相对较多的转换说明符,它常常作为入 ...
- TI推出SimpleLink低能耗蓝牙CC2541
TI推出SimpleLink低能耗蓝牙CC2541 日前,德州仪器 (TI) 宣布推出 SimpleLink™ 低能耗蓝牙 (Bluetooth®Low Energy) CC2541-Q1, 这是一款 ...
- bzoj1497(最小割)
传送门:最大获利 题意:建立n个中转站,每个花费P[i],有m个用户,使用Ai和Bi中转站可获利Ci,问最终建立哪几个中转站使获利最大? 分析:根据最大权闭合图建图,用户群和中转站为带权的点集,用户群 ...
- Extjs4 RowEditing 的使用和更新方法
如何灵活快速的掌握RowEditing组件的应用,应大家的要求,今天给大家具体讲下该组件的使用. 1.创建 var rowEditing = Ext.create('Ext.grid.plugin.R ...
- Error : APP-FND-01926: The custom event WHEN-LOGON-CHANGED raised unhandled exception: ORA-06502: PL
In this Document _afrLoop=440418974213449&id=1508865.1&_afrWindowMode=0&_adf.ctrl-stat ...
- git配置流程
写的比较简略,主要是记录一下,以后配置别的机器的时候看一下,仅供参考. 1 安装 命令依赖包 sudo apt-get install git-core git-gui git-doc 2 设置SSH ...
- php反射类 ReflectionClass
什么是php反射类,顾名思义,能够理解为一个类的映射.举个样例: class fuc { //定义一个类static function ec() {echo '我是一个类';}}$cla ...
- POJ2155:Matrix(二维树状数组,经典)
Description Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the number in the ...
- java 线程 ProducerAndConsumer
package j2se.thread.demo; /** * <p>Project:J2SE 的基础知识</p> * <p>Tile:多线程模拟 生产者 和 消费 ...
- jvm(13)-线程安全与锁优化(转)
0.1)本文部分文字转自“深入理解jvm”, 旨在学习 线程安全与锁优化 的基础知识: 0.2)本文知识对于理解 java并发编程非常有用,个人觉得,所以我总结的很详细: [1]概述 [2]线程安全 ...