51单片机51大数相乘的问题

需要使用'('和')'来代替'['和']', C语言中用()来確定运算优先级, []是数学中的表达方式.

头文件<math.h>是PC机编译器C/C++里的头文件, 需要确定51编译器中是否有此头文件.

/1024其实就是移位操作, 如果变量u的取值范圍足够大, 可以使用移位操作, 即>>10来代替/1024. 像处理器这种东西, 最怕做的是除法, 代价很高, 速度很慢.

另外, 51单片机51是8位处理器, double型和float型的取值范围是一样嘚.

-中国物联网校企联盟技术部

double型和float型的取值范围是一样的
精度不一样啊
精度是一样的, 都是8位
啥意思,不是说float型精确到小数点后7位double型精確到小数点后15或者16位嘛
看书学的吧......那是PC机上C/C++编译, 命令行在PC机中是16位的, 所以double的精度可以提高到16位.
现在使用的都是集成开发环境, 编辑器、编译器、调试器和图形化界面都整合在一起, 但是不同的编译器编译出的结果是不一样的.
可以考虑看看

你对这个回答的评价是?

用右移算法速喥会非常快

你对这个回答的评价是?


C语言没有中括号直接用小括号就行了。

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

程序全局或者静态变量估计有点哆,建议把数组前面加个CODE,放在程序区里去.
嵌入式系统的内存资源是很有限的特别是51系统,分成了BDATADATA,IDATAXDATA,使用的时候要引起注意最好的DATA段也是最应该节约的,因为该段可以直接寻址而R0~R7,BDATA段都在该区段内使得仅有的128个字节更加紧张,能用IDATA段的尽量用IDATA段像数组本来就不需要直接寻址的,建议放在IDATA段但是要注意的是必须留出足够的堆栈空间。

我要回帖

更多关于 单片机51 的文章

 

随机推荐