LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2030|回复: 9

新手求助一个十六进制转十进制的写法

[复制链接]
发表于 2009-6-25 12:50:13 | 显示全部楼层 |阅读模式
各位大侠,想要从一个文件里读入一些十六进制数,每个数占一行,然后把它们转成十进制数存到另一个文件里,应该怎么写阿?
先谢谢各位了~~~
发表于 2009-6-25 13:55:00 | 显示全部楼层
用bc就好啦,十六进制文件:hex-file,存到dec-file
cat hex-file|while read i;do echo "ibase=16;$i" |bc>>dec-file;done
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-25 21:44:28 | 显示全部楼层
谢谢~~一直都不清楚对文件怎么操作~~
回复 支持 反对

使用道具 举报

发表于 2009-6-25 21:53:54 | 显示全部楼层
Post by bloodseed;2001253
谢谢~~一直都不清楚对文件怎么操作~~

你是怎么做的呢(十六进制转十进制)?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-25 21:57:34 | 显示全部楼层
怎么不行阿, 显示:
(standard_in) 1: parse error
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-25 21:59:51 | 显示全部楼层
Post by chenfengyuan;2001261
你是怎么做的呢(十六进制转十进制)?


原来我只知道
echo 'obase=10; ibase=16; A03' | bc 这样子的
回复 支持 反对

使用道具 举报

发表于 2009-6-25 22:33:56 | 显示全部楼层
Post by bloodseed;2001263
怎么不行阿, 显示:
(standard_in) 1: parse error

不清楚呀,你cat下16进制的文件看看
回复 支持 反对

使用道具 举报

发表于 2009-6-25 22:34:40 | 显示全部楼层
Post by bloodseed;2001265
原来我只知道
echo 'obase=10; ibase=16; A03' | bc 这样子的


obase本来就是10,不用写也行的吧
回复 支持 反对

使用道具 举报

发表于 2009-7-10 04:33:00 | 显示全部楼层
这样更简单吧:
cat hex-file|while read i;do printf "%d" 0x"$i" ;done >>dec-file
回复 支持 反对

使用道具 举报

发表于 2009-7-10 13:15:41 | 显示全部楼层
Post by lastart;2004941
这样更简单吧:
cat hex-file|while read i;do printf "%d" 0x"$i" ;done >>dec-file


这样不错。busybox下也可以用了:)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表