新しく発言する EXIT インデックスへ
XOR(排他的論理和)演算を行いたいがど...

  XOR(排他的論理和)演算を行いたいがどうしたら良いでしょうか? D51 2006/05/17 15:00:54 
  A,Bをビットに分解して(2進法に変換するこ... 白石 和夫 2006/05/17 16:57:25 
   ├わかりにくそうなので,Q&Aに追加しました... 白石 和夫 2006/05/17 17:23:57 
   │└早速DOWNLOADしてXOR演算できました。 D51 2006/05/17 19:46:32 
   └別解 河川屋 2006/05/23 21:54:21 

  XOR(排他的論理和)演算を行いたいがどうしたら良いでしょうか? D51 2006/05/17 15:00:54  ツリーへ

XOR(排他的論理和)演算を行いたいがどうしたら良いでしょうか? 返事を書く
D51 2006/05/17 15:00:54
伝送の誤りチェックにBCCチェック(水平ハ゜リティー)を行いたいがXOR命令が無いので出来ないでいます。例(C=A xor B)どのようにしたらこのような計算が出来ますか何方かお教え下さい。

  A,Bをビットに分解して(2進法に変換するこ... 白石 和夫 2006/05/17 16:57:25  ツリーへ

Re: XOR(排他的論理和)演算を行いたいがどうしたら良いでしょうか? 返事を書く
白石 和夫 2006/05/17 16:57:25
A,Bをビットに分解して(2進法に変換することの応用),各ビットごとに
EXTERNAL FUNCTION XOR(a,b)
IF (a=0 AND b=1) OR (a=1 AND b=0) THEN LET XOR=1 ELSE LET XOR=0
END FUNCTION
を適用して,再び合成すればできます。
実用的には,
http://hp.vector.co.jp/authors/VA008683/BitArray.htm
および
http://hp.vector.co.jp/authors/VA008683/MakeDLL.htm
においてあるBITOP.LZHに含まれるBITOP.DLLを使うのが簡単です。

   ├わかりにくそうなので,Q&Aに追加しました... 白石 和夫 2006/05/17 17:23:57  ツリーへ

Re: A,Bをビットに分解して(2進法に変換するこ... 返事を書く
白石 和夫 2006/05/17 17:23:57
わかりにくそうなので,Q&Aに追加しました。
http://hp.vector.co.jp/authors/VA008683/BitOp.htm

   │└早速DOWNLOADしてXOR演算できました。 D51 2006/05/17 19:46:32  ツリーへ

Re: わかりにくそうなので,Q&Aに追加しました... 返事を書く
D51 2006/05/17 19:46:32
早速DOWNLOADしてXOR演算できました。
解決できそうです。
ご回答ありがとうございました。

   └別解 河川屋 2006/05/23 21:54:21  ツリーへ

Re: A,Bをビットに分解して(2進法に変換するこ... 返事を書く
河川屋 2006/05/23 21:54:21
別解

どれくらい大きさの数値のXORとりたいのか不明ですが、そんなに大きくないのを前提に、
以下の方法でできます。
LET C=(A OR B) AND (NOT A OR NOT B)
これでbit毎のXORをとってくれます。
これが動く条件は、
・A,Bとも、符号付32bitで表記が可能な整数である。
・MicrosoftBasicモードで実行する。
の2点を満たすことが必要。
※10進BASIC 4.9.8で確認。


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。