linux c十六进制转十进制函数,用Linux/Unix命令把十六进制转换成十进制(转)

本文介绍了在Linux环境中通过echo、printf和bc命令进行十六进制与十进制之间的转换方法。同时提供了C语言中十六进制转十进制的实现思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用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

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

#include /* 十六进制转换成十进制:要从右到左用二进制的每个数去乘以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的命令行终端时,有时候会碰到键盘 ...

随机推荐

MySQL学习笔记八:日期/时间的处理

MySQL日期时间的处理,在其官网文档上都有详细的阐述,想了解更多的同学可自行查阅. 1.查询当前日期时间:函数有now(),localtime(),current_timestamp(),sysda ...

Java学习第一步: Win7配置JDK环境

转摘"专注JavaWeb开发":http://www.javaweb1024.com/java/Javajichu/2015/03/02/353.html 下载JDK并安装到本机  ...

各种less开发工具

less是前端开发CSS的神器,但如何让less代码语法高亮,智能提示,快速编译及格式化,这不是一般的IDE的less插件能做到.下面是我搜刮到的一些工具 Codekit - incident57又一 ...

修改tabbarcontroller选中图片及选中颜色

1.修改选中图片: UITabBarItem* item = [self.tabBarController.tabBar.items objectAtIndex:1];   //从0开始 item.s ...

WinCE启动次数的记录

最近一周一直在忙于测试NAND文件系统的稳定性和可靠性,今天终于有所进展.测试组所有同事齐上阵,加上小高和我,测试了一天,都未发现问题.虽然还不能保证完全OK,但至少有所改善了. 测试组今天主要做了文 ...

Nagios+msn+fetion自定义时间发送报警消息

转自http://blog.youkuaiyun.com/deccmtd/article/details/6063467 Nagios+fetion发送手机报警使用了几个月.每次报警短信来都要看下手机.感觉麻烦. ...

View绘制详解(三),扒一扒View的测量过程

所有东西都是难者不会,会者不难,Android开发中有很多小伙伴觉得自定义View和事件分发或者Binder机制等是难点,其实不然,如果静下心来花点时间把这几个技术点都研究一遍,你会发现其实这些东西都 ...

网易新闻首页iOS

// //  ViewController.m //  wyy // //  Copyright © 2016年 zm. All rights reserved. // #import "V ...

c语言,字符串原地翻转

实现字符串的原地翻转: #include #include #include #define SWAP(a ...

html5 读写sqlite数据库

var db = openDatabase('MyData','','My Database',102400); //首先它创建一个数据库表,里面有3个字段 db.transaction(functi ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值