2025-11-15 07:28:31
西门子S7-200的移位指令分左移和右移两种,左移一位就是乘2,右移一位就是除2。比如把100000B左移一位变成200000B,这样数据就翻倍了。操作时要注意方向,左移用SHL指令,右移用SHR指令,位数由N参数指定。比如把16位数据左移两位,实际就是乘4,但S7-200最多只能移8位。
为什么是这个答案呢?因为二进制左移一位相当于每个位乘2,比如1000(8)左移后变成10000(16),这样数值就翻倍了。数据类型如果是BCD码,移位前要先把数字转成二进制,比如十进制8转成BCD是0000 1000,左移一位变成0001 0000(即16)。实际操作时,如果移位后超出数据范围,系统会报错,比如16位数据左移9位就会溢出。比如用SHL M0.0,1指令,M0.0的值就会乘2,但要注意N参数不能超过8。
本题链接: