5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

排他的論理和をJavaScriptで実装してみる

Last updated at Posted at 2018-10-11

経緯

排他的論理和を説明する際に、ネットや書籍に記載されている内容だと概念は理解できるのだが、いまいち消化しきれていない印象を受けた。
※正直なところ、説明する本人も説明する前にネットで確認した。
なのでコードで表現してあげた方がプログラミングをかじった人にしてみれば分かりやすいのでは?
と言う事で記事にしてみた。

JavaScriptで実装した経緯としては、特に準備の必要もなくブラウザさえあれば実行できる手軽さより。

おさらい

排他的論理和について、簡単におさらいしておくと
以下の表のようにどちらか一方が1の場合にのみ、1となる論理演算である。(両方1はダメ)

a b c
0 0 0
0 1 1
1 0 1
1 1 0

実装

断っておくが、JavaScriptでビット演算子が用意されているのは、知っている。

var c = a ^ b;

ただしそれだと今回の目的から外れるので、自前で実装する。

var c = (a & !b) | (!a & b);

意外と分かりにくい。
これなら万人に理解できる表で十分かもしれない。

(2018/10/12 追記)
演算子をバイナリ論理演算子(&&||)からバイナリビット演算子(&|)に変更しました。

5
5
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?