CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

求助:如何将16进制转化为10进制存储起来啊!(如20H转为32H)我用的单片机没有乘法指令

楼主qb90(感觉feel)2004-09-04 11:55:26 在 其他开发语言 / 汇编语言 提问

同上 问题点数:20、回复次数:8Top

1 楼DawnWoo()回复于 2004-09-04 12:46:56 得分 0

1,你用的单片机没乘法指令?我表示怀疑!  
  2,其实数据的存储都是二进制的,只不过我们处理的时候需要转换。  
  3,我想做表格比较好Top

2 楼ldarmy(你的武器已破碎)回复于 2004-09-04 12:58:54 得分 5

连续相减  
  如20h,先减10,减了3次,十位就为3,剩下的就是各位数字  
  其他的也一样,可以将减数设大点Top

3 楼bitanfuyun(碧潭浮云)回复于 2004-09-04 13:14:41 得分 0

用乘以16h就行了Top

4 楼W32API()回复于 2004-09-04 17:18:58 得分 10

怀疑什么?   EM78153(6)   系列就没有乘法指令  
   
  我要转宽度   16bit   的数据成   十进制数据,你要多大的表?  
   
  EM78P153(6)   的代码空间只有   1KTop

5 楼zhangze(喆)回复于 2004-09-04 22:05:02 得分 5

这是我想出来的算法,对于十位用了最多10次循环,百位没有使用循环是因为对于一个字节的内容,2次循环稍显影响速度,所以使用了一个if判断。我在想有没有另外简单一点的,这个算法有点笨拙。  
  char   char100;  
  char   char10;  
  char   char1;  
  byte   hex;  
  if(hex>99)  
  char100=((hex>>7)+1)+0x30;//+0x30是为了显示成字符  
  hex=hex&7f;  
  byte   temphex=hex;  
  for(int   i=0;;i++)  
  {  
  temphex=temphex-0xa;  
  if(temphex<0xa)  
  break;  
  }  
  char10=i+0x30;  
  char1=temphex+0x30;Top

6 楼zhangze(喆)回复于 2004-09-04 22:06:02 得分 0

for(int   i=0;;i++)应该改为int   i=0;for(;;i++)Top

7 楼W32API()回复于 2004-09-06 08:35:55 得分 0

查找原来的帖子,我有贴过用移位来做乘除法运算的代码片段Top

8 楼qb90(感觉feel)回复于 2004-09-06 09:27:15 得分 0

谢谢大家     :)Top

相关问题

  • 乘法指令
  • 单片机
  • 通过SPCOMM控制单片机,如何缩小指令间的时间间隔?详情见内。谢谢!!
  • 大家帮我分析分析几行代码,我要往串口发指令.怎么单片机没有动作?  急啊!
  • 单片机与pc通信
  • 单片机选型,求助
  • 我想学单片机
  • 关于单片机中断
  • 单片机和单片机的通信(急!!!!!!!!!急!!!!!!
  • 乘法

关键词

  • 指令
  • 数据
  • temphex
  • 乘法指令
  • hex
  • 没有
  • char

得分解答快速导航

  • 帖主:qb90
  • ldarmy
  • W32API
  • zhangze

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo