($title_img_alt)

こちらからの投稿は、先頭に表示されているコメントへの返信になります。
RPG、RPGLEでビット反転の命令 sakura さん [ 11月16日(月) 13時11分 ]
RPG/RPGLEでビットを反転する命令というのはありますでしょうか?
もしもあれば現在は分岐で振り分けているものを1文で表現できるため
使っていきたいと思っています。

IF *IN01 = *ON;
 *IN01 = *OFF;
ELSE;
  *IN01 = *ON;
ENDIF;

RE:RPG、RPGLEでビット反転の命令 IKD さん [ 11月17日(火) 9時29分 ]
ありません。標識を標識エリアやフィールドとして扱うことやビットオン、ビットオフの命令は
ありますがビットを反転させる命令は存在しません。

RPG のテストビットやビットオン、オフの命令は便利でわかりやすいものですが
C 言語でもビットオン、オフやテストビットの命令はありません。
C 言語では、他の変数と AND OR して結果を間接的に判断するものでこれに比べてRPG のほうが
直接的に判断することができます。
それでもビットの反転命令は存在しません。
RE:RPG、RPGLEでビット反転の命令 sakura さん [ 11月17日(火) 13時12分 ]
了解しました。
やっぱりないのですね。IFで分岐させると行数が増えてしまうので
もしあればと思い質問させていただきました。
コメントありがとうございました。
裏技なら あるが ASD さん [ 11月17日(火) 9時57分 ]
<PRE>
1.  JA  ADD  5  JA  1/0    31=      JAが0と5 を行ったり来たり。
2.      MOVE   *IN31   *IN41
     41         SETOF           31
     N41        SETON           31
3. 失敗例
    31     SETOF        31
      N31        SETON        31
4.  試してないが
    *IN31   COMP  '0'      3131  ><     
    
RE:裏技なら あるが sakura さん [ 11月17日(火) 13時16分 ]
サンプルソースを記載していただきありがとうございます。
全部試してみます!

コメントありがとうございました。
RE:裏技なら あるが しろくま ー百獣の王ー さん [ 11月17日(火) 11時22分 ]
こんなのはどうでしょうか?

EVAL      *IN01 = NOT *IN01
RE:裏技なら あるが sakura さん [ 11月17日(火) 13時26分 ]
こういう方法もあるんですね!
非常に参考になりました。

実は配列で行おうと思っていたのですが、記載いただいたものを参考にして
一度標識に値を入れて、それを配列に移そうと思います。

コメントありがとうございました。

*IN(I) = NOT *IN(I)
ARY(I) = %DEC(*IN(I):1:0)

お名前

パスワード

メールアドレス

タイトル

ホームページ

アドレス

項目