浮点数是常用的数据类型,在进行数据处理过程中经常需要使用到浮点数到其他类型数据的转换。这里就浮点数的转换分享如下:
1、2进制浮点数→字符串的转换
用于将2进制浮点数数据转换成指定位数的字符串(ASCII码)。
根据S2 ,S2 +1,S2 +2中指定的内容,将 [S1 +1,S1 ]的内容 (2进制浮点数数据 )转换成字符 串,并保存至D开始的软元件中。此外,还可以在S1中直接指定实数。
![fdf0ed177598d60e24981313b0ebe0b5.png](https://i-blog.csdnimg.cn/blog_migrate/1e25faee1f7912d07bd1dd4842585df8.png)
S1:要转换的2进制浮点数数据,或是保存数据的软元件的起始编号
S2:保存要转换数值的显示指定的软元件起始编号
D:保存已转换的字符串的软元件起始编号
![5174c25822bc8fb40c6d79b50cf254e1.png](https://i-blog.csdnimg.cn/blog_migrate/ae82a52d6da8a4b685386928e9805a5e.jpeg)
小数点形式时
![0549ca8e9dddc44d40b6da8e072d3c21.png](https://i-blog.csdnimg.cn/blog_migrate/fc586fa923e366f8c3cc876025acfa8f.jpeg)
在S2 +1中可以指定的所有位数如下。(最大: 24位数)
小数部分的位数为“0”时·············· 所有位数≧2
小数部分的位数为“0”以外的数字时···· 所有位数≧(小数部分位数+3)
S2 +2中可以指定的小数部分位数为0~7位数。
但是,请设定为小数部分位数≦(所有位数-3)。
指数形式时
![1e19be4772c6738f6d98a463820cb3a1.png](https://i-blog.csdnimg.cn/blog_migrate/a838a448f08833f3efac1fe358e975a2.jpeg)
在 +1中可以指定的所有位数如下。(最大: 24位数)
小数部分的位数为“0”时··············位数≧6
小数部分的位数为“0”以外的数字时····位数≧(小数部分位数+7)
S2+2中可以指定的小数部分位数为0~7位数。
但是,请设定为小数部分位数≦(所有位数-7)。
2、字符串→2进制浮点数的转换
于将字符串(ASCII码)转换成2进制浮点数数据的指令。
将S开始的软元件中保存的字符串转换成2进制浮点数数据后,保存到[D +1,D ]中。
![e590fbff40c08a5950623a45a3b59b4a.png](https://i-blog.csdnimg.cn/blog_migrate/dbae267e6fbb632950ba9d3f448e6b4e.png)
S:保存要转换成2进制浮点数数据的字符串数据的软元件的起始编号
D:保存已转换的2进制浮点数数据的软元件的起始编号
![d4da49f81948a3bb4f38319ace4d54dc.png](https://i-blog.csdnimg.cn/blog_migrate/efd14e0bb2f31296c2992e64ffefa433.jpeg)
小数点形式时
![8023802193c0ce30c9bcde5bea3b3ed7.png](https://i-blog.csdnimg.cn/blog_migrate/e7c9350a1a5722f7abe017516bd12b00.jpeg)
指数形式时
![453843fe458196171e848cdfbedd1d15.png](https://i-blog.csdnimg.cn/blog_migrate/5d1acbc157d53446256b8478fedb4026.jpeg)
S中指定的,要转换成2进制浮点数的字符串,去除了符号、小数点、指数部分仍然有7位数以上时, 舍去第7位数以后的数。
小数点形式时
![0a6cd0614e2f6eb43065e086a64d9609.png](https://i-blog.csdnimg.cn/blog_migrate/a81ec74eb4c0818934785e200379ed64.jpeg)
指数形式时
![4406486f76068d449796ed86170468d7.png](https://i-blog.csdnimg.cn/blog_migrate/c69fc6bd9eb82a4585c91a1e39558063.jpeg)
在小数点形式中,将符号指定为“2BH”(+)或省略符号,则作为正值转换。 此外,将符号指定为"2DH"(-)则作为负的值转换。
用指数形式在指数部分的符号内指定"2BH"(+),省略符号后作为正的指数转换。 将指数部分的符号指定为"2DH"(-)则作为负的指数转换。
S指定的字符串中,在最初的“0”以外的数值之间如果存在“20H”(空格)或是“30H”(0)时,会忽略 “20H”、“30H”而进行转换。
![b9176a9d92850dc103181277e51f8aa7.png](https://i-blog.csdnimg.cn/blog_migrate/8a0a6a06c0babb730f2e6e3e372bb7dd.jpeg)
在指数形式的字符串中,“E”和数值之间如果存在“30H”(0),则忽略“30H”而进行转换。
![9043a283ad20e43e8b5c8105f92ec57c.png](https://i-blog.csdnimg.cn/blog_migrate/44307b1bf7c548d383feed39bfb3bd15.jpeg)
字符串最大可以设定到24个字符。 字符串中的“20H”(空格)、“30H”(0)也作为一个字符来计算。
3、2进制浮点数→10进制浮点数的转换
将元件中的2进制浮点数转换成→10进制浮点数的指令。
将[S +1、S ]的2进制浮点数转换成10进制浮点数后,传送到[D +1,D ]中。
![e878ce512edb9959e3614c98115a448a.png](https://i-blog.csdnimg.cn/blog_migrate/b4bdcbc4b397aad49485c2766afdb21a.png)
S:保存2进制浮点数数据的数据寄存器编号
D:保存被转换的10进制浮点数数据的数据寄存器编号
数据转换过程如下图所示:
![e855419f9ef758502d105f223767279d.png](https://i-blog.csdnimg.cn/blog_migrate/97d905531b0fda440711453099f776fe.jpeg)
4、10进制浮点数→2进制浮点数的转换
将元件中的10进制浮点数转换成2进制浮点数的指令。
将[ S+1,S ]的10进制浮点数S转换成2进制浮点数后,传送到[ D+1,D ]中。
![d025532e67ae792dcdb51cf1aaddc7c7.png](https://i-blog.csdnimg.cn/blog_migrate/55a93a4cd96cea47e3c418ec9662b146.png)
S:保存10进制浮点数数据的数据寄存器编号
D:保存被转换的2进制浮点数数据的数据寄存器编号
数据转换过程如下:
![a48599d6b1cf1f87be4d4ab645bcd73b.png](https://i-blog.csdnimg.cn/blog_migrate/8431bd56acfbdef769b10d57e36cd998.jpeg)