您的位置 首页 厂商

在8位单片机中的浮点数运算开方,乘法,除法,横竖切

所用单片机:EM78系列,所用仿真器ICE468。int1byte,long4byteBitdatatypecannotbeusedasareturnvalue.Double…

所用单片机:EM78系列,所用仿真器ICE468。

int 1byte , long 4byte

Bit data type cannot be used as a return value.

Double and float are NOT supported by the EM78 Series C Compiler.

开平方根

  1. unsignedlongsqrt_16(unsignedlongM)
  2. {
  3. unsignedlongN;
  4. inti;
  5. unsignedlongtmp,ttp;//成果、循环计数
  6. if(M==0)//被开方数,开方成果也为0
  7. return0;
  8. N=0;
  9. tmp=(M>>30);//获取最高位:B[m-1]
  10. M<<=2;
  11. if(tmp>1)//最高位为1
  12. {
  13. N++;//成果当时位为1,否则为默许的0
  14. tmp-=N;
  15. }
  16. for(i=15;i>0;i–)//求剩下的15位
  17. {
  18. N<<=1;//左移一位
  19. tmp<<=2;
  20. tmp+=(M>>30);//假定
  21. ttp=N;
  22. ttp=(ttp<<1)+1;
  23. M<<=2;
  24. if(tmp>=ttp)//假定建立
  25. {
  26. tmp-=ttp;
  27. N++;
  28. }
  29. }
  30. returnN;
  31. }

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/263700.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部