指 🐴 令 🌿 : FLT
语法:FLT Rd, Src
Rd: 要存储 🐯 转换结果的目的寄存 🦄 器 (D0 到 D35)
Src: 要转换为浮点 🍁 数的源寄存器 (D0 到 D35)
说明:此指令将源寄存器中的整数(32 位有符 🐳 号)转(32 换为一个浮点数位 IEEE 754 格式转换)。结。果存储在目的寄存器中
示例:MOV D0, 12345
FLT D1, D0
此示例将整数 12345 从 D0 寄存器转换 🐟 为 🐛 浮点数并将其存储在寄存器 D1 中。
FX5u 整数转浮 🐞 点数指 🌼 令 🦊
FX5u PLC 使用指令 `ITOF` 将 32 位 32 整数转换为位单精度浮 🦅 点数。
指令格式:ITOF dst, src
`dst`: 32 位 🌵 浮点 🐴 数目的寄存 🕸 器或存储器位置
`src`: 32 位整数源寄存器或存储器位 🐈 置
操作:`ITOF` 指令将 🐶 源寄存器或存储器位置中的位 32 整 32 数转换为位单精度浮点数并存储在目的寄存器或存储器位置中。
注意事项:源寄存器或 🐎 存储器 🐒 位置必须包含一个 🐅 位 32 整数。
目的寄存器或存 🦄 储 🕷 器位置必须至少有位 32 。
此指令 🌼 不会影响源寄存器或存储器位置中 🌻 的值。
示例:将寄存器 D100 中的 🦢 整数 🐱 1234 转化为 🐟 浮点数并存储在寄存器中 D200 :
ITOF D200, D100
转换后,寄存 🌹 器 `D200` 将包含浮点数 1234.0。
使用 🌺 MOV 和 FSET 指令
// 32位 32整数转换为 🦁 位浮点数
MOV IntegerValue, D00000 // 将 🐘 整 🦅 数加载 🌸 到数 D 据寄存器中
FSET D00000, D00001 // 将 D00000 寄存器中的 32 位 D00001 整 32 数转换为寄存 🕸 器中 🐱 的位 🐼 浮点数
使 🐠 用 CVTF 指 🕊 令 🐒
// 32位 🦈 32整数转换 🪴 为位浮点数
CVTF D00001, IntegerValue // 将整数直接转换 🐦 为 D00001 寄存器中的 32 位 🐱 浮点数
使 🌺 用 FCMPE 指令和比较寄存器
// 16位 16整数 🐒 转换为位浮点数
MOV IntegerValue, D00000
FCMPE D00000, [C10000] // 比较 🌺 D00000 和 C10000,结果存储在比较寄存器中
MOV F00000, D00000 // 将 D00000 移动寄存 🪴 器中的 16 位整数转换为寄存器中的位 F00000 浮 16 点数
32 位 32 整数转换为位浮点数 🐡 时,小数部分将被舍入。
16 位 🐦 16 整 🍁 数转 🕷 换为位浮点数时,范围和精度有限制。
确保目标浮 🦉 点数寄存器具有足够的空间来容纳转换后的值。
FX5U 中将 🦅 整数转换为浮 🦆 点数的指令:
`TONF` (整数 🦍 转浮 🦋 点 🌵 数)
语法:`TONF Dst, Src`
`Dst`:目 🕸 标浮点数 🌵 据 🐠 寄存器 (D0000 D0327)
`Src`:源整数数据 🌳 寄 🐝 存器 (D0000 D32767)
操作:将 `Src` 寄存器中的整数转换为双 🕸 精度浮点数并 ☘ 存储在寄存器中 `Dst` 。
如果 `Src` 寄存器中的值超出双精 ☘ 度浮点数的范围,则 🐡 结果为 +/ 无穷大或 +/ NaN(非数字)。
示例:将整数寄存器 `D100` 中的值转换 🐎 为浮点数并存储在浮点寄 🍁 存器中 `D0000` :
TONF D0000, D100