A. xs128单片机中 中的怎么开方
加个Math.h头文件,看看里面有没有开方的寒暑
B. 为什么不在单片机中直接进行开方运算
因为标准库的sqrt函数执行时间太长了,效率低。自己设计的开方函数会好很多。
你的单片机是80MHz,直接用当然没关系。
C. 单片机开方怎么开
是相当的慢。其实可以用一些别的简单运算来代替开方,或者干脆用查表方法。
D. 跪求单片机快速开方的方法 是否能把下面的代码转成定点数
首先
#include<math.h>
然后直接在程序中调用下面的函数:
double sqrt (double);
另外,单片机可以计算浮点.
E. C51单片机怎么用C语言实现数值的开方和平凡运算
首先,楼主要明白,C51是基于标准的C语言扩展而来的,所以,标准C语言能做的东西,C51也可以。
平方运算,自不必说,就是两个数相乘:
例如:float a,b,c; c = a*b;
开方,则需要用到库函数:
标准c语言里用的是 sqrt()函数,这个函数包含在math.h文件中。
所以:
#include <math.h>
c = sqrt(a);
就可以了
F. keil c里开平方怎么写
可以使用sscanf,就像sprintf将整型数转换成字符串输出一样,逆运算(KEILC 中scanf和printf确定了通过单片机串行口完成输入输出模式,除非做了修改,一般实际中不用)。
G. 请问能用单片机开3次方吗大概怎么弄
...开三次方对于汇编有点悬.....貌似汇编不行的....
#include<reg52.h>
#include<math.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
main()
{
double x;
double y=(1/3);
double xdate z at 0x80;
z=double pow(double x, double y)
}
H. C51单片机怎么用C语言实现数值的开方和平方运算
C51是基于标准的C语言扩展而来的,所以,标准C语言能做的东西,C51也可以。
平方运算,自不必说,就是两个数相乘:
例如:float a,b,c; c = a*b;
开方,则需要用到库函数:
标准c语言里用的是 sqrt()函数,这个函数包含在math.h文件中。
所以:
#include <math.h>
c = sqrt(a);
就可以了
I. 单片机中开平方的算法语句是什么
你这是什么单片机呢?开放运算不是一般的运算,大部分甚至可以说所有的单片机都不提供这个运算的。至少没有这个指令。
在具体应用中,一般是通过算法来实现解决的。在一般的单片机应用中,这种复杂的运算一般还是要避免的。你可以参照网上的一些例子,看一下算法,移植过来就可以实现了。
J. 四字节开方用单片机怎么编程啊
功能:四字节二进制无符号数开平方(快速)
入口条件:被开方数在R2、R3、R4、R5中。
出口信息:平方根在R2、R3中,整数部分的位数为原数的一半,其余为小数。
影响资源:PSW、A、B、R2~R7 堆栈需求: 2字节
SH4: MOV A,R2
ORL A,R3
ORL A,R4
ORL A,R5
JNZ SH40
RET ;被开方数为零,不必运算
SH40: MOV R7,#0 ;左规次数初始化
MOV A,R2
SH41: ANL A,#0C0H ;被开方数高字节小于40H否?
JNZ SQRH ;不小于40H,左规格化完成
MOV R6,#2 ;每左规一次,被开方数左移两位
SH42: CLR C ;被开方数左移一位
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
DJNZ R6,SH42 ;被开方数左移完两位
INC R7 ;左规次数加一
SJMP SH41 ;继续左规
SQRH: MOV A,R2 ;规格化后高字节按折线法分为三个区间
ADD A,#57H
JC SQR2
ADD A,#45H
JC SQR1
ADD A,#24H
MOV B,#0E3H ;第一区间的斜率
MOV R4,#80H ;第一区间的平方根基数
SJMP SQR3
SQR1: MOV B,#0B2H ;第二区间的斜率
MOV R4,#0A0H;第二区间的平方根基数
SJMP SQR3
SQR2: MOV B,#8DH ;第三区间的斜率
MOV R4,#0D0H;第三区间的平方根基数
SQR3: MUL AB ;与区间基点的偏移量乘区间斜率
MOV A,B
ADD A,R4 ;累加到平方根的基数上
MOV R4,A
MOV B,A
MUL AB ;求当前平方根的幂
XCH A,R3 ;求偏移量(存放在R2R3中)
CLR C
SUBB A,R3
MOV R3,A
MOV A,R2
SUBB A,B
MOV R2,A
SQR4: SETB C ;用减奇数法校正一个字节的平方根
MOV A,R4 ;当前平方根的两倍加一存入R5R6中
RLC A
MOV R6,A
CLR A
RLC A
MOV R5,A
MOV A,R3 ;偏移量小于该奇数否?
SUBB A,R6
MOV B,A
MOV A,R2
SUBB A,R5
JC SQR5 ;小于,校正结束,已达到一个字节的精度
INC R4 ;不小于,平方根加一
MOV R2,A ;保存新的偏移量
MOV R3,B
SJMP SQR4 ;继续校正
SQR5: MOV A,R4 ;将一个字节精度的根存入R2
XCH A,R2
RRC A
MOV F0,C ;保存最终偏移量的最高位
MOV A,R3
MOV R5,A ;将最终偏移量的低八位存入R5中
MOV R4,#8 ;通过(R5R6/R2)求根的低字节
SQR6: CLR C
MOV A,R3
RLC A
MOV R3,A
CLR C
MOV A,R5
SUBB A,R2
JB F0,SQR7
JC SQR8
SQR7: MOV R5,A
INC R3
SQR8: CLR C
MOV A,R5
RLC A
MOV R5,A
MOV F0,C
DJNZ R4,SQR6 ;根的第二字节计算完,在R3中
MOV A,R7 ;取原被开方数的左规次数
JZ SQRE ;未左规,开方结束
SQR9: CLR C ;按左规次数右移平方根,得到实际根
MOV A,R2
RRC A
MOV R2,A
MOV A,R3
RRC A
MOV R3,A
DJNZ R7,SQR9
SQRE: RET