三菱fx3u浮点运算程序怎么写

三菱fx3u浮点运算程序怎么写,第1张

浮点除法,浮点运算实际上是普通的四种运算指令加上De,add,desub,deml,dediv。指令中可以使用十进制常量K、十六进制常量h、浮点常量e。

1.加法指令 ADD S1 S2 D:

注解 ;s1+s2 -D,如果是32位 (S1+1,S1)+(S2+1,S2)-(D+1,D)

2.减法指令 SUB S1 S2 D:

注解:S1-S2-D ,如果是32位  (S1+1,S)-(S2+1,S2)-(D+1,D)

3.乘法指令  MUL S1 S2 D:

注解: S1*S2-(D+1,D) 如果是32位(S1+1,S1)*(S2+1,S2)-(D+3,D+2,D+1,D)

4.除法指令   DIV S1 S2 D:

注解  :S1/S2-(D),(D+1)D 是商  D+1是余数。

扩展资料:

FX3U基本指令

1、触点指令:

LD a触点的逻辑运算开始

LDI b触点的逻辑运算开始

LDP 检测上升沿的运算开始

LDF 检测下降沿的运算开始

AND 串联a触点

ANI 串联b触点

ANDP 检测上升沿的联连接

ANDF 检测下降沿的串联连接

OR 并联a触点

ORI 并联b触点

ORP 检测上升沿的并联连接

ORF 检测下降沿的并联连接

2、结合指令

ANB 回路块的串联连接

ORB 回路块的并联连接

MPS 入栈

MRD 读栈

MPP 出栈

INV 运算结果的反转

MEP 运算结果上升沿脉冲化(Ver.2.30以上的产品对应)

MEF 运算结果下降沿脉冲化(Ver.2.30以上的产品对应)

float的取值范围在-3.4E+38 和 3.4E+38之间。FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。浮点数使用 IEEE(电气和电子工程师协会)格式。浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 excess-127 二进制指数和一个 23 位尾数。尾数表示一个介于 1.0 和 2.0 之间的数。由于尾数的高顺序位始终为 1,因此它不是以数字形式存储的。此表示形式为 float 类型提供了一个大约在 -3.4E+38 和 3.4E+38 之间的范围。 可根据应用程序的需求将变量声明为 float 或 double。这两种类型之间的主要差异在于它们可表示的基数、它们需要的存储以及它们的范围。下表显示了基数与存储需求之间的关系。浮点变量由尾数(包含数字的值)和指数(包含数字的数量级)表示。下表显示了分配给每个浮点类型的尾数和指数的位数。任何 float 或 double 的最高有效位始终是符号位。如果符号位为 1,则将数字视为负数;否则,将数字视为正数。浮点变量由尾数(包含数字的值)和指数(包含数字的数量级)表示。下表显示了分配给每个浮点类型的尾数和指数的位数。任何 float 或 double 的最高有效位始终是符号位。如果符号位为 1,则将数字视为负数;否则,将数字视为正数。指数和尾数搜狗问问由于指数是以无符号形式存储的,因此指数的偏差为其可能值的一半。对于 float 类型,偏差为 127;对于 double 类型,偏差为 1023。您可以通过将指数值减去偏差值来计算实际指数值。存储为二进制分数的尾数大于或等于 1 且小于 2。对于 float 和 double 类型,最高有效位位置的尾数中有一个隐含的前导 1,这样,尾数实际上分别为 24 和 53 位长,即使最高有效位从未存储在内存中也是如此。浮点包可以将二进制浮点数存储为非标准化数,而不使用刚刚介绍的存储方法。“非标准化数”是带有保留指数值的非零浮点数,其中尾数的最高有效位为 0。通过使用非标准化格式,浮点数的范围可以扩展,但会失去精度。您无法控制浮点数以标准化形式还是非标准化形式表示;浮点包决定了表示形式。浮点包从不使用非标准化形式,除非指数变为小于可以标准化形式表示的最小值。下表显示了可在每种浮点类型的变量中存储的最小值和最大值。此表中所列的值仅适用于标准化浮点数;非标准化浮点数的最小值更小。请注意,在 80x87 寄存器中保留的数字始终以 80 位标准化形式表示;数字存储在 32 位或 64 位浮点变量(float 类型和 long 类型的变量)中时只能以非标准化形式表示。搜狗问问如果存储比精度更重要,请考虑对浮点变量使用 float 类型。相反,如果精度是最重要的条件,则使用 double 类型。浮点变量可以提升为更大基数的类型(从 float 类型到 double 类型)。当您对浮点变量执行算术时,通常会出现提升。此算术始终以与具有最高精度的变量一样高的精度执行。例如,请考虑下列类型声明:float f_shortdouble f_longlong double f_longerf_short = f_short * f_long在前面的示例中,变量f_short提升到类型 double 并且与f_long相乘;然后,结果舍入到类型 float,然后赋给f_short。在以下示例中(使用前面示例中的声明),将以浮点(32 位)精度对变量执行算术;结果随后将提升到 double 类型:f_longer = f_short * f_shortdouble f_longlong double f_longerf_short = f_short * f_long在前面的示例中,变量f_short提升到类型 double 并且与f_long相乘;然后,结果舍入到类型 float,然后赋给f_short。在以下示例中(使用前面示例中的声明),将以浮点(32 位)精度对变量执行算术;结果随后将提升到 double 类型:f_longer = f_short * f_short扩展内容:【基本类型的存储】下表汇总了与每个基本类型关联的存储。基础类型的大小C 数据类型属于常规类别。 “整型”包括 char、int、short、long、signed、unsigned 和 enum。 “浮点型”包括 float、double 和 long double。 “算术类型”包括所有浮点型和整型。参考资料:搜狗百科—FLOAT微软—基本类型的存储


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9681581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存