tamakipedia

フロントエンドエンジニア。Typescriptもう特訓中です。一日の振り返りや学んだことをちょっとずつ吐いています。

ビット演算!?

今日jsの参考書を模写していた際
ビット演算という処理に遭遇しました。

最初はなんだかちんぷんかんぷんだったのだが、
理解した瞬間に感動しました。wwwwwwwwwwww

椎名林檎の曲「流行」を初めて聞いたときの衝撃があったので、忘れないうちに下ろしておきます。笑

ビットとは!

ビットとは「binary digit 」の略で、「binary」の「bi」は二つを表す音節
「binary」は二進数らしいです。 「digit 」は桁を表すのです。( ドヤ顔 )

二進数、、、

0の次は1、1の次は桁が増えて10、次は11と、1と0で構成されている数のことです。
コンピューターに10 + 5 を計算させる時も、実際は何かしらのプログラムが 数字を二進数に変換して
コンピューターは二進数として計算するのです。

ビット演算

二進数の同じ桁同士を比較する演算処理

  • & (AND)
0 & 0 → 0
0 & 1 → 0
1 & 0 → 0
1 & 1 → 1
  • | (OR)
0 | 0 → 0
0 | 1 → 1
1 | 0 → 1
1 | 1 → 1

それぞれ言い方をかえると、
(AND) → 必要なビット以外を( 0 )にする処理
(OR) → 必要なビットをON( 1 )にする処理
など言い換えることができるようです。

11001111    
and 11110000   
---------------   
11000000

下四桁をOFFにする場合は11110000 を差し込めば言い訳ですね!

11000000   
or 00001111   
-------------   
11001111

こちらは下四桁をONにする場合ですね!

そして普段私たちが利用する整数は二進数に直せます。
8 → 1000
つまり、整数「8」は 4つのON ・ OFFを使い分けることができます。

コンピュータはこの「0なのか1なのか」の繰り返しで実現しているのですね笑
一瞬だけ、コンピュータになった気がしました。ww

終わり