[STM32F1] 十六进制转换成十进制!!!!!!

[复制链接]
5074|23
 楼主| 失控的单片机 发表于 2014-8-29 11:26 | 显示全部楼层 |阅读模式
在AVR中怎么把十六进制的数转换成10进制数啊  求怎么转换。
haolaishi 发表于 2014-8-29 11:28 | 显示全部楼层
楼主貌似发错版块了吧,汗
haolaishi 发表于 2014-8-29 11:29 | 显示全部楼层
这个你可以用纯c实现,然后移植到AVR上面的
i1mcu 发表于 2014-8-29 11:29 | 显示全部楼层
不需要吧
i1mcu 发表于 2014-8-29 11:29 | 显示全部楼层
计算的时候都是二进制
haolaishi 发表于 2014-8-29 11:29 | 显示全部楼层
用c语言编写函数Htoi(s)把由16进制数字组成的字符串 转化成与之等价的整型值,字符串中允许包含0-9,a-f,A-F.
  1. #include "stdio.h"
  2. #include "string.h"
  3. int translat(char c)
  4. {
  5. if(c<='9'&&c>='0') return c-'0';
  6. if(c>='a' && c<='f') return c-87;
  7. if(c>='A' && c<='F') return c-55;
  8. return -1;//其它字符返回-1
  9. }

  10. int Htoi(char *str)
  11. {
  12. int length=strlen(str);
  13. if(length==0) return 0;
  14. int i,n=0,stat;
  15. for(i=0;i<length;i++)
  16. {
  17.   stat=translat(str[i]);//防错处理
  18.   if(stat>=0) n=n*16+stat;
  19. }
  20. return n;
  21. }
  22. void main()
  23. {
  24. char Hex[20];
  25. printf("Input Num at Hexadecimal:");
  26. gets(Hex);
  27. printf("%s=%d",Hex,Htoi(Hex));
  28. }
i1mcu 发表于 2014-8-29 11:30 | 显示全部楼层
你直接按照十进制读就行了
haolaishi 发表于 2014-8-29 11:32 | 显示全部楼层
  1. int main()
  2. {

  3.         int a=0xfeac;
  4.         int str[10]={0};
  5.         int j=0;
  6.         while(a)
  7.         {
  8.                 str[j]=a%10;
  9.                 a/=10;
  10.                 j++;
  11.         }
  12.         for(int i=j-1;i>=0;i--)
  13.         {
  14.                 printf("%d",str[i]);
  15.         }
  16. }
KC_CEC 发表于 2014-8-29 22:22 | 显示全部楼层
不知道你的用途是什么,
如果是使用的话,那就直接按照十进制使用就行了。
如果是显示的话,建议用sprintf这个神器。当然,如果你AVR内存紧张,建议用动态缓存
GreatBlueLine 发表于 2014-8-29 22:33 | 显示全部楼层
KC_CEC 发表于 2014-8-29 22:22
不知道你的用途是什么,
如果是使用的话,那就直接按照十进制使用就行了。
如果是显示的话,建议用sprintf ...

我觉得他是接收比如串口的值,然后需要转换为10进制吧
kkzz 发表于 2014-8-29 23:07 | 显示全部楼层
需要修改吗
kkzz 发表于 2014-8-29 23:09 | 显示全部楼层
kkzz 发表于 2014-8-29 23:09 | 显示全部楼层
么有看明白的
hudi008 发表于 2014-8-29 23:55 | 显示全部楼层
不需要的
hudi008 发表于 2014-8-29 23:55 | 显示全部楼层
不明白什么意思的
hudi008 发表于 2014-8-29 23:55 | 显示全部楼层
 楼主| 失控的单片机 发表于 2014-8-30 08:03 | 显示全部楼层
hudi008 发表于 2014-8-29 23:55
不明白什么意思的

我需要串口给单片机发地址号(0到80),但是单片机内部程序我是按照十进制处理的,直接用接收到的数据可以么,不需要转换么??
 楼主| 失控的单片机 发表于 2014-8-30 08:03 | 显示全部楼层
kkzz 发表于 2014-8-29 23:07
需要修改吗

我需要串口给单片机发地址号(0到80),但是单片机内部程序我是按照十进制处理的,直接用接收到的数据可以么,不需要转换么??
gxliu08 发表于 2014-8-30 08:28 | 显示全部楼层
这种问题也需要问?自己编程试一试更有感受
kkzz 发表于 2014-8-30 14:44 | 显示全部楼层
失控的单片机 发表于 2014-8-30 08:03
我需要串口给单片机发地址号(0到80),但是单片机内部程序我是按照十进制处理的,直接用接收到的数据可 ...

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

本版积分规则

24

主题

41

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部