恭喜,你发布的帖子
发布于 2025-06-08 13:51:59
3楼
DWord:
//根据模式决定交换顺序:FALSE:1234→4321;TRUE:1234→3412
//其他方式与上述一致
IF NOT #Mode THEN
VariantGet(SRC := #In,
DST => #tmpInDWord);
#tmpOutDWord.%B0 := #tmpInDWord.%B3;
#tmpOutDWord.%B1 := #tmpInDWord.%B2;
#tmpOutDWord.%B2 := #tmpInDWord.%B1;
#tmpOutDWord.%B3 := #tmpInDWord.%B0;
VariantPut(SRC := #tmpOutDWord,
DST := #Out);
ELSE
VariantGet(SRC := #In,
DST => #tmpInDWord);
#tmpOutDWord.%B0 := #tmpInDWord.%B2;
#tmpOutDWord.%B1 := #tmpInDWord.%B3;
#tmpOutDWord.%B2 := #tmpInDWord.%B0;
#tmpOutDWord.%B3 := #tmpInDWord.%B1;
VariantPut(SRC := #tmpOutDWord,
DST := #Out);
END_IF;
上面这段程序,应该是先取数,然后分模式转序,同样输出也是,而不是同样的程序重复编写了两遍,虽然只是执行了一遍。
要有提取公因式的概念
VariantGet(SRC := #In,
DST => #tmpInDWord);
IF #Mode THEN
#tmpOutDWord.%W0 := SWAP(#tmpInDWord.%W0);
#tmpOutDWord.%W1 := SWAP(#tmpInDWord.%W1);
ELSE
#tmpOutDWord := #tmpInDWord;
END_IF;
#tmpOutDWord := SWAP ( #tmpOutDWord);
VariantPut(SRC := #tmpOutDWord,
DST := #Out);
请填写推广理由:
分享
只看
楼主