请教一下,一个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