请教一下,一个word型数据,它是用补码表示的,请问如何转换成原码?

请教一下,一个word型数据,它是用补码表示的,就是最高位不变,其余位取反然后加1;请问这个数如何转换成原码?

最佳答案

程序如下,可以试试看
      L     MW   150               //准备求原码的数
      L     W#16#8000
      AW    
      T     MW   152               //保留最高位的值,其他位为0
      L     MW   150
      SLW   1
      SRW   1                     //左移一位和右移一位就是去掉最高位
      L     1
      -I                                //减去1
      INVI                              //取反  
      SLW   1
      SRW   1                    //左移一位和右移一位就是去掉最高位
      L     MW   152            //与原来保留的最高位进行一个或的功能留下最高位  
      OW    
      T     MW   154           //得到的原码

提问者对于答案的评价:
多谢了,你给的程序实现了我想要的功能。不过要是我想在两个load前面加个I0.0的开点,就是A  I0.0,不知道这样可以吗?

最佳答案作者回复:
A   I0.0
FP   M99.0  分配一个变量
JCN  A001
原来的程序部分,就是将原来的程序插入这里,就能实现I0.0得电一次转换一次了
A001:NOP 0

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc213918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月18日
下一篇 2017年11月18日

相关推荐