ロジカルは面白いのか?

コンピュータの話をしているので、ロジカル演算を紹介しましょう。

ロジカル演算には、AND/OR/XOR/NOTなどがあります。
演算ですので、四則演算と同じように、表記します。

コンピュータ内部では、2進数の情報だけですので、そのまま、演算が実行されます。

たとえば、01111010 AND 11010011=01010010となりますね。

NOTは、反転なので、0→1 / 1→0ですね。
AND/OR/XORをまとめて書いてみると、以下のようになります。

  AND OR XOR
00 0  0  0
01 0  1  1
10 0  1  1
11 1  1  0

ちょっと話がそれますが、2進数の情報だけとなると、例えば、8bitでは、10進数でいうと、0~255の数字を扱うことになります。
負の整数を扱う場合、ー記号の情報が追加で必要となるので、8bitでは表せなくなります。
ということで、7bitで表し、最上位のbitを符号とすれば、何かと都合が良くなります。
255=11111111に1を足すと、1 00000000というように9bit目に繰り上がりますが、9bit目がないので、8bit分の00000000が結果となるので、負の数字を表す際には、
00000000 - 1 = 11111111 → -1
11111111 - 1 = 11111110 → -2

ということで、11111111は、255でもあり-1でもある。
コンピュータは、単なる11111111なのにね。
人にとっては、255でもあり、-1でもある。

何をどのように読み取るのかは、人(プログラム)次第ってとこだね。

あと、他にも、Shift / Rotateがある。
shiftには、右と左があるが、01000000を右シフトすると、00100000となる。10進数でいうと64が32になるので、2で割ったことになる。普通は気にしなくても良いが、感覚として知っておけば、活用ができると思う。
もう一つ、Rotateは、最下位bitと最上位bitがつながっているように、グルグル回る演算です。

また、余談になるが、8bitの半分4bitでは、0~15なので、16進数として、0~F(10はA、15をFで表現)です。
この数字を、10進数として扱い、A~Fを利用しない表現として、BCD(Binary-Coded Decimal)というのもある。
浮動小数点演算には、この表現が用いられる。
詳細は、ググってくれ(笑)

この記事が気に入ったらサポートをしてみませんか?