微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机计算器如何赋给数字权

51单片机计算器如何赋给数字权

时间:10-02 整理:3721RD 点击:
比如说--------在键盘上输入了2,3,6。我们理解肯定是236。但是单片机不知道它的意义啊。它只认为那就是2和3和6。
之前使用了一个方法就是:
                                          (数字)*100+(数字)*10+(数字)
但是这个方法并不太好,当数值很大时,51单片机的计算能力根本不够用的。那位大神给指条明路啊。郁闷死了

换一种思路,人是怎么计算四则运算的?以加法为例,你的计算规则是什么?是不是相同“权”的数字相加,再逢十进一?
  在键盘上输入2、3、6、+、7、8、9。常规的方法就像你说的那样,先计算出2X100+3X10+6给一个变量,再计算7X100+8X10+9给一个变量,再把两个变量相加,得到1025,如果要把结果显示出来,还要把这个结果变量拆开1025/1000得到“1”给一个变量,(1025%1000)/100得到“0”给一个变量,(1025%100)/10得到“2”给一个变量,(1025%10)得到“5”给一个变量,最后再把这四个变量显示出来。
  当然你还可以这样计算:在键盘上输入2、3、6、+、7、8、9六个数字给6个变量,计算变量”6“+”9“得”15“,保留”5“和进位”1“。计算变量”3“+”8“+进位”1“得”12“,保留”2“和进位”1“。计算变量”2“+”7“+进位“1”得”10“,保留”0“和进位”1“。那么最终会得到4个变量”1“、”0“、”2“、”5“。
  第一种方法,先用到乘法整合,再计算加法,最后再用除法分离。第二种方法就是人的计算方法,根本不管“2”的权是多少,”3“的权是多少,相信你在笔算加法时也没管吧,只管各位数对齐,然后各自相加和进位就行,整个过程只用到加法,没用到乘除法。哪怕你最终不需要把结果拆分成”1“、”0“、”2“、”5“,那也没关系,用方法一中一开始那样,把这4个整合起来即可,相比方法1,少了除法,还少了一半的乘法运算。
  
其它的四则运算是一个道理,自己领悟。还有定点数

谢谢你的回答,感觉给我很多的思路,重新想一下计算方法

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top