搜索
bottom↓
回复: 23

有什么软件能批量转换十五位有符号十六进制数为十进制的

[复制链接]

出0入0汤圆

发表于 2012-6-22 09:23:34 | 显示全部楼层 |阅读模式
本帖最后由 hack3er 于 2012-6-22 16:38 编辑

有什么软件能批量转换十五位有符号十六进制数(连符号位十六位)为十进制的?

如:0xfe01
有符号数为-511
无符号数为65025

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-6-22 14:07:18 | 显示全部楼层
自己写一个就好了- -||

出0入0汤圆

发表于 2012-6-22 14:17:02 | 显示全部楼层
excel应该可以吧。

出0入0汤圆

 楼主| 发表于 2012-6-22 14:37:20 | 显示全部楼层
kalo 发表于 2012-6-22 14:17
excel应该可以吧。

EXCEL不太好用,十六进制转二进制的话,最多转八位。。
也就是0xab这样的
而0xabcd就转不了。
而且EXCEL中十六进制不能直接画图。。

出0入0汤圆

发表于 2012-6-22 15:39:06 | 显示全部楼层
关注中,遇到相同的问题,想对一个数组(多行,2000个数据)转换成十进制后图形显示,楼主要是解决了给个答案吧

出0入0汤圆

 楼主| 发表于 2012-6-22 16:13:25 | 显示全部楼层
xyx2012xyx 发表于 2012-6-22 15:39
关注中,遇到相同的问题,想对一个数组(多行,2000个数据)转换成十进制后图形显示,楼主要是解决了给个答 ...

呵呵,头疼呢,还是没找到方法。
6000多个有符号的十六进制不知道该怎么转换成十进制。

出20入0汤圆

发表于 2012-6-22 16:16:38 | 显示全部楼层
用c就可以写个命令行的工具了

出0入0汤圆

发表于 2012-6-22 16:22:25 | 显示全部楼层
我遇到的问题关键是数据之间是有逗号分隔开,无法用软件显示图形,需要先将数据转换成一列数据

出0入0汤圆

发表于 2012-6-22 16:23:50 | 显示全部楼层
原始数据来自哪里? 要转成什么形式?
用C语言写, 30行程序就差不多了吧.

出0入0汤圆

 楼主| 发表于 2012-6-22 16:30:42 | 显示全部楼层
本帖最后由 hack3er 于 2012-6-22 16:39 编辑
shark 发表于 2012-6-22 16:23
原始数据来自哪里? 要转成什么形式?
用C语言写, 30行程序就差不多了吧.



原始数据可以是TXT,也可以是EXCEL,
关键不会写上位机。
只需要把6000个有符号十六进制转为有符号的十进制就行(空格或逗号隔开。)
不知朋友能不能帮个忙。

出0入0汤圆

发表于 2012-6-22 16:46:54 | 显示全部楼层
shark 发表于 2012-6-22 16:23
原始数据来自哪里? 要转成什么形式?
用C语言写, 30行程序就差不多了吧.

数据如下a[64]={0x80,0x8C,0x98,0xA4,0xB0,0xBC,0xC6,0xD0,0xDA,0xE2,
                       0xE9,0xF0,0xF5,0xF9,0xFD,0xFE,0xFF,0xFE,0xFD,0xFA,
                       0xF5,0xF0,0xEA,0xE2,0xDA,0xD1,0xC6,0xBC,0xB0,0xA5,
                       0x99,0x8C,0x80,0x73,0x67,0x5B,0x4F,0x44,0x39,0x2F,
                       0x26,0x1D,0x16,0xF,0xA,0x6,0x3,0x1,0x0,0x1,
                       0x2,0x5,0xA,0xF,0x15,0x1D,0x25,0x2E,0x38,0x43,
                       0x4E,0x5A,0x66,0x73,0x7F}
需要将其转换成10进制的64行1列数据,其中的逗号去除,保存为txt格式,这个如何 转换,请指教!

出0入0汤圆

发表于 2012-6-22 16:58:43 | 显示全部楼层
#include "stdio.h"
int main(int argc ,char **argv)
{
    short int v;//两字节有符号数
    FILE *fp;
    if (argc<2){
        printf("CVT srcFile\n");
        return 1;
    }
    if ((fp = fopen(argv[1],"r"))==NULL){
        printf("Can not open file %s\n",argv[1]);
        return 2;
    }
    while (fscanf(fp,"%X",&v)!=EOF){
        printf("%d,",v) ;
    }
    fclose(fp);
    return 0;                        
}

EXE 文件:



执行方法,解压到一个目录,比如C:\temp , 把你要转换的文件也拷贝到这个目录下,比如我示例的test.txt.
然后在Windows下运行CMD.
在命令行窗口打下面命令(每行命令后加回车):
C:     
cd \temp  


cvt test.txt
即可显示转换后的结果

cvt test.txt   >  a.txt
可以把转换结果重定向到 a.txt文件中.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-6-22 16:59:15 | 显示全部楼层
hack3er 发表于 2012-6-22 16:30
原始数据可以是TXT,也可以是EXCEL,
关键不会写上位机。
只需要把6000个有符号十六进制转为有符号的十 ...

好了, 你测试一下.

出0入0汤圆

发表于 2012-6-22 17:09:54 | 显示全部楼层
xyx2012xyx 发表于 2012-6-22 16:46
数据如下a[64]={0x80,0x8C,0x98,0xA4,0xB0,0xBC,0xC6,0xD0,0xDA,0xE2,
                       0xE9,0xF0 ...

#include "stdio.h"
int main()
{
    int a[] =
    {
        0x80, 0x8C, 0x98, 0xA4, 0xB0, 0xBC, 0xC6, 0xD0, 0xDA, 0xE2,
        0xE9, 0xF0, 0xF5, 0xF9, 0xFD, 0xFE, 0xFF, 0xFE, 0xFD, 0xFA,
        0xF5, 0xF0, 0xEA, 0xE2, 0xDA, 0xD1, 0xC6, 0xBC, 0xB0, 0xA5,
        0x99, 0x8C, 0x80, 0x73, 0x67, 0x5B, 0x4F, 0x44, 0x39, 0x2F,
        0x26, 0x1D, 0x16, 0xF, 0xA, 0x6, 0x3, 0x1, 0x0, 0x1,
        0x2, 0x5, 0xA, 0xF, 0x15, 0x1D, 0x25, 0x2E, 0x38, 0x43,
        0x4E, 0x5A, 0x66, 0x73, 0x7F
    };
    for (int i = 0; i < sizeof(a) / sizeof(a[0]); ++i)
    {
        if (i % 64 == 0 && i != 0) printf("\n");
        printf("%d ", a);
    }
}
编译后执行命令(假设可执行文件名叫CVT.EXE)
CVT > a.txt
即可.

出0入0汤圆

发表于 2012-6-22 17:11:01 | 显示全部楼层
hack3er 发表于 2012-6-22 14:37
EXCEL不太好用,十六进制转二进制的话,最多转八位。。
也就是0xab这样的
而0xabcd就转不了。

1、可以拆开成两个8位处理
2、转换成十进制后就可以用来画图或者计算
3、excel最多显示15位数字,超出的末尾显示为0,并影响后续计算。但单元格设成常规的话,则显示成科学记数法,不影响计算。

出0入0汤圆

 楼主| 发表于 2012-6-22 17:36:13 | 显示全部楼层
本帖最后由 hack3er 于 2012-6-22 17:38 编辑
shark 发表于 2012-6-22 16:59
好了, 你测试一下.


THX!
非常感谢这位兄弟。
不过,还有个小小的要求,就是能不能在输出到指定TXT的时候,让每一个数据占一行?
就像下面这样
1
2
3
4
5










这样
就是把逗号间隔改成换行。

出0入0汤圆

发表于 2012-6-22 17:53:23 | 显示全部楼层
hack3er 发表于 2012-6-22 17:36
THX!
非常感谢这位兄弟。
不过,还有个小小的要求,就是能不能在输出到指定TXT的时候,让每一个数据占一 ...

你看,让你提要求你不说, 写完了你再说, 话说你连个C编译器也没有?
新的:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-6-22 17:57:06 | 显示全部楼层
shark 发表于 2012-6-22 17:53
你看,让你提要求你不说, 写完了你再说, 话说你连个C编译器也没有?
新的:  ...

真的不好意思,因为之前没有想到EXCEL的行有范围,数据多了就超范围了
但是EXCEL的列没有长度范围,所以,只有麻烦了。。
电脑上确实没有编译器。。
再次感谢兄弟。

出0入0汤圆

发表于 2012-6-22 18:13:38 | 显示全部楼层
感谢shark热心帮助,正好也解决了我的问题

出0入0汤圆

发表于 2012-6-22 21:19:14 来自手机 | 显示全部楼层
hack3er 发表于 2012-6-22 17:57
真的不好意思,因为之前没有想到EXCEL的行有范围,数据多了就超范围了
但是EXCEL的列没有长度范围,所以 ...

行列有范围的意思是256列,65536行?如果没有c,excel内置vba或者公式填充也是可以的。

出0入8汤圆

发表于 2012-6-22 21:27:17 | 显示全部楼层
直接用python 写个脚本  也可以很容易处理。  

出0入0汤圆

 楼主| 发表于 2012-6-25 07:36:07 | 显示全部楼层
kalo 发表于 2012-6-22 21:19
行列有范围的意思是256列,65536行?如果没有c,excel内置vba或者公式填充也是可以的。 ...

那个相比而言,有点麻烦,关键是EXCEL对除了十进制以外的数都不支持计算。

出0入0汤圆

 楼主| 发表于 2012-6-25 07:37:52 | 显示全部楼层
xyx2012xyx 发表于 2012-6-22 18:13
感谢shark热心帮助,正好也解决了我的问题

是的,如果可以的话,想让阿莫把shark的小软件置酷。
软件虽小,但是帮了大忙。
头像被屏蔽

出0入0汤圆

发表于 2012-6-25 09:33:38 | 显示全部楼层
COOL
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-13 08:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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