单片机复杂数值运算问题

小弟现在要用单片机做一些复杂数值运算,有的数值要精确到小数点后十八位,小弟知道单片机不适合用于运算,不过老师给的任务就是这样,
用arduino好像不合适,那么有能稍微胜任一点的单片机吗,不知道stm32行不行,arduino是不是肯定不行?

6个回答

典型的单片机是 8 位的, 也有16位的单片机。如果用单片机来做高精度的浮点运算, 功能可能比较弱化, 主题的实现思想是: 将整数和小数部分分开, 分别计算,然后最后再处理。
当然, STM32 是 Cortex M0 或者是 M3 或者 M4 的核, 是属于ARM架构的, 一般是 32位的微处理器, 里面基本上都有浮点运算单元, 因此, 可以直接定义 float 型变量或者 double 型变量,直接进行计算即可。
没有浮点运算单元的微处理器, 只能采用分开计算的方法来处理, 希望能够帮到你。

qq_34047532
qq_34047532 谢谢您的回答,小弟知晓了,在下是在arduino的串口通信过程发现单片机读取浮点数非常容易出错,那么stm32是不是就可以解决这个问题呢
一年多之前 回复

stm32没问题的,可以用

你看看stm32的浮点数计算那节

stm32 float 定义浮点型 7位有效数字
double 定义双精度浮点型 17位有效数字!

给个思路...曾经(10多年前)我的单片机导师也出过类似题目,我当时的解法思考方法,建立一个阵列(老师要几位做多大阵列)一位一位运算....当然这个方法既浪费CPU算力又费内存...但是做出答案了^_^
好像正解是定义一个float在运算他就解出来了....由于年代久远找不到当时做的资料了

用arduino好像不合适,那么有能稍微胜任一点的单片机吗,不知道stm32行不行,arduino是不是肯定不行?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
数值运算的问题
short i = 1,j = 1;rni = i+j;rnrn哪里错了?
数值运算
描述 获得用户输入的一个字符串,格式如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬ M OP N‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬...
160bit数值运算问题
对任意字符串使用SHA1哈希函数后可以得到一个160bit的数值,我把它存在 typedef uint8_t key[20] 这样一个数据结构里。现在我想要对这个值做这样一个运算:(key + 2^i) mod 2^160,就是key加上2的i次方再算它除以2的160次方的余数。我不知道这个应该怎样用程序实现,我现在仅仅知道key*2^i是可以通过key向左位移i个单位即key<
字符与数值运算的问题
[code=c]int c;rn int i,va[26] = 0;rn rn while ((c = getchar()) != '\n')rn rn if (c >= 97 && c <= 122)rn rn va[c - 97]++;rn printf("if\n");rn rn [/code]rn这里的c - 97 是c的ascII编码-数值97对吗?
asp数值运算问题?
rnconn.execute("update product set shuzhi=shuzhi-"&shu&" where id='"&id&"' ")rnrn大家帮我看看我为什么不能更新shuzhi这个字段的值?我用"+" 号可以更新,用"-"却没用rn
[python]数值运算问题
python中的浮点运算误差很大,如何解决?是否有其它的类型替换浮点类型?
求助:关于数值运算问题
请问各位老大:我有如下的表达式:(123+789-45)/(12.1*12)现希望通过一个算法使它自动进行计算,想问应如何实现?注:式中的数值均为字符型.
关于数值运算的问题
有一数值,知道它是由一批数值中的某几个数组成,如何写一程序求出这几个数呢?rn例:rn数值为:rn10414.36rnrn数组为:rn1134.56rn239.26rn3598.92rn408.27rn5272.61rn263.28rn1111.56rn226.53rn141rn1355.89rn3.45rn2149.9rn10rn218.38rn150rnrn现在手工计算得:10414.36=1134.56+3598.92+408.27+5272.61rnrn请问,如何用程序实现呢?rn给点思路也行!!!
matlab 数值运算
这是 第二份资料,关于数值计算 :一、二维数值数组的创建、寻访;数组运算和矩阵运算的区别;实现数组运算的基本函数;多项式的表达、创建和操作;常用标准数组生成函数和数组构作技法;高维数组的创建、寻访和操作;非数NaN、“空”数组概念和应用;关系和逻辑操作。
5-数值运算
<p>rn <span> </span> rn</p>rn<p>rn <p>rn 20周年限定:唐宇迪老师一卡通!<span style="color:#337FE5;">可学唐宇迪博士全部课程</span>,仅售799元(原价10374元),<span style="color:#E53333;">还送漫威正版授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span>rn </p>rn <p>rn 点此链接购买:rn </p>rn <table>rn <tbody>rn <tr>rn <td>rn <span style="color:#337FE5;"><a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</a><br />rn</span>rn </td>rn </tr>rn </tbody>rn </table>rn<span>&nbsp;</span>rn</p>rn购买课程后,可扫码进入学习群<span style="font-family:&quot;">,获取唐宇迪老师答疑</span>rn<p>rn <img src="https://img-bss.csdn.net/201908070602101883.jpg" alt="" /> rn</p>rn<p>rn Python数据科学必备工具包视频培训课程:该教程共包含Python数据教程领域四大核心库,科学技术库Numpy,数据分析处理库Pandas,可视化库Matplotlib,可视化库Seaborn。通过学习本教程,可以掌握Numpy矩阵、数组、函数等;Pandas、Matplotlib、Seaborn的用法。rn</p>
matlab2数值运算
matlab数值运算,数值运算ppt课件
c# 数值运算
C#实现保留2位小数 1、 Math.Round(0.333333,2);//按照四舍五入的国际标准 2、 double dbdata=0.335333; string str1=String.Format("{0:F}",dbdata);//默认为保留两位 3、 float i=0.333333; int j=(int)(i * 100); i =    j/100;
bash的数值运算
在shell中,变量的默认类型是字符串类型,而字符串类型是不能进行数值运算的,所以shell提供了两种方式来实现数值运算。 1. 用declare命令显式地声明变量的类型。 2. 用expr/let数值运算工具或着特殊书写格式来完成shell中的数值运算。 一、declare命令介绍 目的:显式地声明变量的类型 格式:declare +/-选项 变量名。 其中-表
数值运算方法
一 expr数值运算工具 aa=11 bb=22 dd=$(expr $aa + $bb) echo $dd 注意 + 左右两边都有空格   二 实战 [root@localhost ~]# aa=11 [root@localhost ~]# bb=22 [root@localhost ~]# dd=$(expr $aa + $bb) [root@localhost ~]#
数值运算细节
整形中4字节以下的数据类型在进行数值运算时,会先扩展到32位(4B),再进行数值运算。 short a = 32767; 对应二进制为: 0111 1111 1111 1111 a &lt;&lt; 1 &gt;&gt; 1; 会先扩张到32位: 0000 0000 0000 0000 0111 1111 1111 1111 左移: 000 0000 0000 0000 0111 1111 111...
MATLAB数值运算
学习和使用MATLAB必须先熟悉MATLAB的桌面环境。MATLAB的窗口包括命令窗口(command window)、历史命令窗口(command history)、当前目录浏览器窗口(current directory browser)、工作空间窗口(workspace browser)和帮助导航/浏览器窗口(help browser)、数组编辑器窗口(array editor)、交互界面分类目录窗口(launch pad)、M文件编辑/调试窗口(editor/debugger)和程序性能剖析窗口(profiler)。
Shell编程---数值运算
下面是三种常用的数值运算: 第一种:sum=$(($sum+1))` 第二种:sum=`expr $num + $i` #只有这种遇到字母会报错第三种:let sum=$sum+$i
数值运算与运算符
1.declare声明变量类型 - 设定类型属性 + 取消.. -i 声明为整数型 -x 声明为环境变量 -p 显示指定变量的被声明的类型 数值运算EX: 1) aa=11 bb=22   declare -i cc=$aa+$bb 2) expr或let运算工具 dd=$(expr $aa + $bb) 注意空格 3) ee=$(($aa+$bb))或ff=$
赋值运算符与数值运算
以《The Swift Programming Language》为基础,全面无死角学习Swift语言
//matlab数值运算
matlab
单片机设计复杂多任务程序
单片机的复杂多任务程序设计,可以简化编程,增强单片机的功能。
PLC程序中_数值运算
PLC程序中的数值运算知识,浮点运算比较费时间,假设你需要两位小数的精度,你可以将数据x100,再需要正确显示结果的地方/100就行了,这样程序的扫描速度可以提高n倍!
Verilog有符号数与无符号数的数值运算
仿真工具:Vivado 2015.2一、无符号数1.高位溢出赋给一个位宽不够的数wire [3:0] a=4'b1111;//15 wire [3:0] b=4'b0010;//2 wire [3:0] c; assign c = a + b;//17=10001wire [3:0] a=4'b1111; wire [3:0] b=4'b0010; wire [2:0] c; assign c...
Shell中的数值运算及处理
整数运算操作 expr 数值1 运算符 数值2 几个数值处理技巧 变量递更处理 使用随机数 生成数字序列 小数运算操作整数运算操作exprexpr 数值1 运算符 数值2 注:使用*使需要转义 $[数值1 运算符 数值2]如果数值是变量的话,直接使用变量名,如 num1=10;num2=20;echo $[num1-num2];使用*时不需要转义几个数值处理技巧变量递更处理格式:let 变量++,
MATLAB数值运算.doc
MATLAB数值运算.doc MATLAB数值运算.doc MATLAB数值运算.doc MATLAB数值运算.doc
求个JS代码,数值运算的
求教各位大神rn题目是这样的:我文本框"text1"取个数值a,"test2"取个数值b。现在要取个数值C,C=A/B*100%。rn 根据C值来给"text3"赋值,小于等于1,取值为100。大于1小于等于3取值97。大于3小于等于6为94。6到10为91.10到15为91.10到15为88.15到21为85.后面还有,就不多说了,就先这些,我学习下自己加。rn 本来我自己是用很笨的方法if多少多少等于多少,但是老师说这方法太简单了,让我想想用数组怎么弄。实在不会了,求教群里的大神们。rn 新手没啥分,还是希望有人帮忙解决下。在此小弟先谢过了
python——基本数据类型及数值运算函数
浮点数 round(x,d):对x四舍五入,d是小数截取位数 浮点数间运算及比较用round()函数辅助 科学记数法的表示方式:&lt;a&gt;e&lt;b&gt;表示a*10的b次方 复数 z=4+5j 实部:用z.real获得实部 虚部:用z.imag获得虚部 操作符 +(加)、-(减)、*(乘)、/(除)结果是浮点数、 x//y:整数除,10//3=3 +x:x本身 -y:y...
linux bash数值运算
方法一: 使用declare -i total=$var1*$var2方法二: 使用var=$((运算内容))不但容易记忆而且比较方便,原因是两个小括号内可以加上空格符 可以有的数值运算包括 +, - , * , / , %等 比如去余数的运算:echo $(( 13 % 3 )) 参考资料: 1、http://blog.csdn.net/zwx19921215/article/deta
字符进行数值运算
/** * program: * Authors: hao.l * Date: 2016/10/24 * Modify by: * * Desc: * 字符进行数值运算 */ #include #include using namespace std; int main(){ int i,j; i='A'; //65 j='B'
25 数值运算与运算符
1、数值运算 错误的计算: $a=1       $b=2       $c=$a+$b //1+2 , linux必须使用运算方法,否则不会计算  2、declare [+/-] [选项][变量名](不推荐) -:给变量设定类型属性 +:取消变量类型属性 -i:将变量声明为整数型 -x:将变量声明为环境变量(一般不用,还是习惯用export加入环境变量) -p:显示
数值运算 条件测试 、 if选择结构
NSD SHELL DAY02 案例1:Shell中的数值运算 案例2:条件测试操作 案例3:使用if选择结构 1 案例1:Shell中的数值运算 1.1 问题 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 使用expr、$[ ]、let等整数运算工具:定义变量X=1234,然后计算X与78的四则运算及求模结果 使用bc实现小数运算操作:以交互方式计算12.3...
shell数值运算的方法
1.declare -i 进行变量属性的声明aa=1bb=2declare -i cc=$aa+$bb2.expr或者let运算工具cc=$(expr $aa + $bb)    注意‘+’号的左右两侧必须有空格let 变量名 = 变量1 运算符 变量2let dd=aa+bb3.采用[ ]和(())dd=$[ $aa+$bb]   dd=$[aa+bb]ee=$(($aa+$bb))   ee=...
内建函数--类型转换和数值运算函数
一、内建函数 1.使用Python内置函数 查看内置函数有哪些,可以使用查看__builtin__模块查看,共有137个,不光有函数 还包含了类,class. 类一般是多个首字母大写。 2.通过Python的官网查看内置函数。 docs.python.org 3.常用的内置函数。 (1)abs()函数,返回数字的绝对值。 abs(
IA-32中的数值运算
1、IA-32中的整数运算整数加减法运算内存中整形数是以补码的形式存储在内存中:原码表示范围:负数部分:1111 1111(-127)~1000 0000(-0);正数部分:0000 0000(+0)~01111111(127)补码表示范围:负数部分:1000 0001(-127)~11111111(-1);正数部分:0000 0000(+0)~0111 1111(127)其中,原码中的1000 ...
Struts2 标签里面数值运算
小弟想用struts2.1.6的标签来实现数值的运算.rn如rn[code=Java]rn rn rn rn[/code]rnrn这两个值全部在Request里面放的,我想对这两个数相除,对除完的数再进行数字格式化,请高手赐教
Matlab基础之基本数值运算
前言: Matlab数值运算包罗万象,丰富多彩,本笔记只介绍其数值运算的常用一小部分。 一、多项式运算 多项式一般类型:; 比如, 对应在Matlab中  a=[2 3 4 2 59 8]; >> a=[2 3 4 2 59 8]; b=[12 2 4 3 5 7 8 9 1]; >> polyval(a,1)%当x=1时,多项式的值 ans = 78 >>c=
shell编程数值运算的方法
shell编程数值运算有三种方法; 1.利用declare命令 declare -i a=9 declare -i b=10 declare -i c=$a+$b echo $c   很明显,方法一非常麻烦,一个简单的加法需要四条命令。 2.利用expr或let数值运算工具 d=$(expr $a + $b) echo $f   注意,$a 和 $b 中间的加号
linux shell数值运算
1 bc命令 1直接进入其命令行执行 bc -q 回车 2写个文件一起执行 bc -q bc-test.bc(纯文本) 3直接在shell中管道符交由bc执行数学运算 echo 2+3|bc 4可处理进制转换,设置精度 2 expr命令 可以是数字或者字符串 3let 命令 4$((expr)) 5 ((a++))这种自加操作不用赋值,a从-变为了1,但是其他运算 $((b=b+...
让其进行数值运算
在javascript里,“+”可以将字符相连,如 document.all("booknum").value+2;如果值是1,则得到的是12,而不是3,如果想得到3,即想让其进行数值运算,应该怎么表示?
Python中的数值运算与逻辑运算
Python能够实现数值运算和逻辑运算。 1、数值运算        打开Python命令行,输入以下命令:         >>>1 + 2         >>>3         >>>3.5 - 4.5         >>>-1.0         >>>3*4         >>>12         >>>3/4         >>>0.75
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview