打印
[STM32F1]

十六进制转换成十进制!!!!!!

[复制链接]
4220|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在AVR中怎么把十六进制的数转换成10进制数啊  求怎么转换。
沙发
haolaishi| | 2014-8-29 11:28 | 只看该作者
楼主貌似发错版块了吧,汗

使用特权

评论回复
板凳
haolaishi| | 2014-8-29 11:29 | 只看该作者
这个你可以用纯c实现,然后移植到AVR上面的

使用特权

评论回复
地板
i1mcu| | 2014-8-29 11:29 | 只看该作者
不需要吧

使用特权

评论回复
5
i1mcu| | 2014-8-29 11:29 | 只看该作者
计算的时候都是二进制

使用特权

评论回复
6
haolaishi| | 2014-8-29 11:29 | 只看该作者
用c语言编写函数Htoi(s)把由16进制数字组成的字符串 转化成与之等价的整型值,字符串中允许包含0-9,a-f,A-F.
#include "stdio.h"
#include "string.h"
int translat(char c)
{
if(c<='9'&&c>='0') return c-'0';
if(c>='a' && c<='f') return c-87;
if(c>='A' && c<='F') return c-55;
return -1;//其它字符返回-1
}

int Htoi(char *str)
{
int length=strlen(str);
if(length==0) return 0;
int i,n=0,stat;
for(i=0;i<length;i++)
{
  stat=translat(str[i]);//防错处理
  if(stat>=0) n=n*16+stat;
}
return n;
}
void main()
{
char Hex[20];
printf("Input Num at Hexadecimal:");
gets(Hex);
printf("%s=%d",Hex,Htoi(Hex));
}

使用特权

评论回复
7
i1mcu| | 2014-8-29 11:30 | 只看该作者
你直接按照十进制读就行了

使用特权

评论回复
8
haolaishi| | 2014-8-29 11:32 | 只看该作者
int main()
{

        int a=0xfeac;
        int str[10]={0};
        int j=0;
        while(a)
        {
                str[j]=a%10;
                a/=10;
                j++;
        }
        for(int i=j-1;i>=0;i--)
        {
                printf("%d",str[i]);
        }
}

使用特权

评论回复
9
KC_CEC| | 2014-8-29 22:22 | 只看该作者
不知道你的用途是什么,
如果是使用的话,那就直接按照十进制使用就行了。
如果是显示的话,建议用sprintf这个神器。当然,如果你AVR内存紧张,建议用动态缓存

使用特权

评论回复
10
GreatBlueLine| | 2014-8-29 22:33 | 只看该作者
KC_CEC 发表于 2014-8-29 22:22
不知道你的用途是什么,
如果是使用的话,那就直接按照十进制使用就行了。
如果是显示的话,建议用sprintf ...

我觉得他是接收比如串口的值,然后需要转换为10进制吧

使用特权

评论回复
11
kkzz| | 2014-8-29 23:07 | 只看该作者
需要修改吗

使用特权

评论回复
12
kkzz| | 2014-8-29 23:09 | 只看该作者

使用特权

评论回复
13
kkzz| | 2014-8-29 23:09 | 只看该作者
么有看明白的

使用特权

评论回复
14
hudi008| | 2014-8-29 23:55 | 只看该作者
不需要的

使用特权

评论回复
15
hudi008| | 2014-8-29 23:55 | 只看该作者
不明白什么意思的

使用特权

评论回复
16
hudi008| | 2014-8-29 23:55 | 只看该作者

使用特权

评论回复
17
失控的单片机|  楼主 | 2014-8-30 08:03 | 只看该作者
hudi008 发表于 2014-8-29 23:55
不明白什么意思的

我需要串口给单片机发地址号(0到80),但是单片机内部程序我是按照十进制处理的,直接用接收到的数据可以么,不需要转换么??

使用特权

评论回复
18
失控的单片机|  楼主 | 2014-8-30 08:03 | 只看该作者
kkzz 发表于 2014-8-29 23:07
需要修改吗

我需要串口给单片机发地址号(0到80),但是单片机内部程序我是按照十进制处理的,直接用接收到的数据可以么,不需要转换么??

使用特权

评论回复
19
gxliu08| | 2014-8-30 08:28 | 只看该作者
这种问题也需要问?自己编程试一试更有感受

使用特权

评论回复
20
kkzz| | 2014-8-30 14:44 | 只看该作者
失控的单片机 发表于 2014-8-30 08:03
我需要串口给单片机发地址号(0到80),但是单片机内部程序我是按照十进制处理的,直接用接收到的数据可 ...

不需要

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

41

帖子

1

粉丝