今天不想工作,翻论坛,看见一篇帖子,是关于移位的帖子
文章地址:http://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=4&a_id=826080&s_id=0&num=75
我想了一下笑了,有时间俺做个代码出来看看,不过我建议使用scl这个做起来比较简单,最多可以移位254位,任意位数的移位,我只是说一下思路
如果人气高的话,我就把代码写出来,呵呵~~~
卖个关子:
1:首先你需要把需要转换的数,转换成十进制码
2:将转换好的十进制码,转换成字符串存起来INT_TO_STRING
3:使用delete函数删除首位(左移位)
DELETE函数(FC 4)在一个串中从P指示的字符开始删除L个字符。如果L和或P等于0,或者如果P大于输入串的当前长度,返回输入的串。如果L和P之和大于输入串的长度,则串删除到结束位置。如果L和/或P是负数,输出一个空
串。
Example: DELETE (IN:= 'Temperature ok', L:= 6, P:= 5)
4:使用insert函数在后面加入一位(左移位)
INSERT函数(FC17)将参数IN2中的字符串插入到参数IN1中P批示的位置之后。如果P=0,第二个串插入到第一个串之前。如果P大于第一个串的当前长度,则第二个串接到第一个串之后。如果P是负数,则输出空串。当结果串长
于输出参数说明和变量,结果将限定在最大长度。
Example INSERT (IN1:= 'Participant arrived', IN2:='Miller':= 2, P:= 11)
5:这样我们的移位就完成了,然后就可以转换成十进制就行了STRING_TO_ INT
6:需要提出的INT为16位,那么我们我们字符串为254位,这里就需要变换了,呵呵~~~【如果还不明白我的意思就可以再看第3步,要是再不明白,那我就没有办法了】
各位好运.................................................
QQ:23013014