スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ベン図

論理演算を理解しやすくするにはベン図を理解するのが一番です。

ベン図はこういう図です。
benzu.png

どういう意味かというと、ビットごとの論理演算をする時の組み合わせは、
00
10
01
11
この4通りしかありません。

ベン図はこの4通りの組み合わせに対し、論理演算の結果が1になる箇所に
色を付ける図です。
では、まず「|(論理和)」から説明します。
先ほどの組み合わせで、左のビットをX、右ビットをYとし、演算結果も追加します。
XYX or Y
000
101
011
111
「or」は論理和のことなので覚えておいて下さい。

では、それぞれ色を付けていきます。
まずは、XもYも0の時は結果は0なのでどこにも色が付きません。

次は、Xが1でYが0の時は1になります。
なので、色を付けないといけません。
x1.png
Xのみ1のときに演算結果が1の場合左の円に色を付けます。

次は、Xが0でYが1の時です。
演算結果が1になるので、これも色をつけます。
y1.png
Yのみ1の時に演算結果が1の場合左の円に色を付けます。

次は、Xが1、Yも1の場合です。
演算結果はこれも1なので色を付けます。
and.png
XもYも1の時に演算結果が1の場合は円が重なった場所に色を付けます。

では、仕上げです。
全部とまとめてみましょう。
or.png
これで、論理和のベン図が完成しました。

この調子で「&(論理積)」と「^(排他的論理和)」のベン図も書いてみましょう。

まず、論理積から。
論理積は「and」ともいいます。
XYX and Y
000
100
010
111

論理積はXとYが1の時だけ演算結果が1になるので、
and.png
これが、論理積のベン図になります。

次は、排他的論理和です。
排他的論理和は「xor」といったりもします。
XYX xor Y
000
101
011
110

排他的論理和は、XとYの値が異なる時だけ演算結果が1になるので
xor.png
これが、排他的論理和のベン図になります。

どうですか?
ベン図について分かってもらえましたか?

最後まで読んで頂いてありがとうございます。
スポンサーサイト

Java演算子の一覧

メルマガ「一から始めるJava言語」で「4.演算子」に
入ったのでJavaで使われる演算子の一覧を作ってみました。

一から始めるJava言語の目次

メルマガ「一から始めるJava言語」の目次が完成しました。

まだ、完成していなかったのか!!
と言われるとその通りです。申し訳ありません…。

目次はこちらです↓

ウィークリーまぐまぐの効果

3/16に発信されたまぐまぐのメルマガ「ウィークリーまぐまぐ」
のビジネス版に私が発信している「一から始めるJava言語」が
今週のおすすめメルマガで紹介されてのですが、宣伝効果が
すごいです!!

2進数の考え方と計算方法

メルマガ「一から始めるJava言語」の中で2進数や
16進数に関する問題を出したのでその答えと解説です。
例1)10進数2,4,8,16,32をそれぞれ2進数で表現して下さい。

この答えは
210
4100
81000
1610000
32100000

という答えになります。

2,4,8,16,32という数字の規則には気付きましたか?
これは2の階乗です。

つまり2進数において、下位の位から2の0乗、1乗、2乗…
と表現しているのです。
なので、2の10乗(1024)位までは何も考えずに分かる
ようになったほうがいいかもしれないです。

例2)2進数1111 1111と1 0000 0000を10進数と16進数で
   それぞれ表現してみて下さい。

この答えは
 1111 1111 → 10進数:255 16進数:FF
1 0000 0000 → 10進数:256 16進数:100
となります。

まず10進数の1 0000 0000を考えます。
下位の位から2進数の値は2の0乗、1乗、2乗となっていく
ので、1の場所を探します。
1となっている場所は2の8乗になる場所です。
なので答えは256になります。

次に1111 1111を考えます。

例1のように考えると2の0乗+1乗+2乗+3乗…となり
1+2+4+8+16+32+64+128=255
で答えが出ます。

でもこのやり方は慣れないと非常にめんどくさいです。

こういった全ての位が1の2進数の値を求めるときは、
①2進数に1を足す
②2の階乗の値を求める
③②の値から1を引く
この手順で求めた方が早いです。

実際にやってみます。
①2進数に1を足す。
1111 1111に1を足します。

一番下の位に1を足すと、普通は2になりますが、2進数で
2は次の位に桁上がりします。
なので、桁上がりして0になり、次の位の1と桁上がりの1
になり、また桁上がりになります。

これが、何度も繰り返して答えは1 0000 0000となります。

②2の階乗の値を求める
1 0000 0000は2の8乗の場所が1になっているので256です。

③②の値から1を引く
最初に1を足しているので、1を引いても元の値は変わりません。
なので、答えは
256-1=255
となります。

次は16進数の場合です。
まず、1111 1111です。

考え方ですが、16進数の0~Fは10進数では0~15です。
では、2進数では?

2進数では0000~1111が相当します。
なので、4桁で区切っていたのです。

ということで、1111 1111は16進数で「FF」となります。

このやり方だと、1 0000 0000はとても簡単ですね。
1は1、0000は0なので答えは「100」になります。


文章だけの説明で分かりにくかったですよね?
最後まで読んで頂いてありがとうございます。

 | HOME |  »









このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。