指でビット単位操作🙌👩🏻‍💻


私は、最初に2017年のコードチャレンジの出現の一部としてビット単位の操作に遭遇しました.私は完全に混乱した.「どうやって2つの数字でできますか?」私は巧みに、私は挑戦のために使用していたどんな言語でも演算子を使用して、おそらくそれが何を意味知って受け入れていた.
私の次の出会いは、職場やディスカッションのグループで使用し、オペレータについてfilter packets, using tcpdump になった.私は実際にこれらのビットごとの操作で何が起こっていたかを理解するのに十分な質問をしました、そして、私はこの記事で思い付いた方法の1つを共有したいです.これは、バイナリで指をカウントし、ビット単位の算術演算を実行するために手を使用して-コンピュータが必要です.誰か他の人がこれのようにそれをしたかどうか、私にはわかりません、しかし、私はそれが役に立つとわかります.

背景


あなたが使用するどんなコンピュータ・システムも、一連の0と1 sとして情報を表します.ビットごとの演算子は最終的な結果に到達するためにそれぞれのビットにbinaryを実行します.
例えば、6と3を見つけたいとしましょう.
0110 (6) 
0011 (3)
----
0010 (2)
破壊する

In the 2^0 (1's) place, the first value is 0 (false) and the second value is 1 (true). false AND true = false.

In the 2^1 (2's) place, the first value is 1 (true) and the second value is 1 (true). true AND true = true.

In the 2^2 (4's) place, the first value is 1 (true) and the second value is 0 (false). true AND false = false.

In the 2^3 (8's) place, the first value is 0 (false) and the second value is 0 (false). false AND false = false.


要約するには、各列または列ごとに、その列の出力値を取得するには、その列の入力値の論理演算を行います.
他のビット操作を行うために同じプロセスを使用します.
または( trueがtrueならば真)
0110 (6) 
0011 (3) 
----
0111 (7) 
Boolean operation
0110 (6) 
0011 (3) 
----
0101 (5) 
NOTは単項演算子ではなく、1つの入力だけをとり、各カラムの値を反転する.
0101 (5) 
----
1010 (10)
あなたはXORを使用してビットごとの演算を再生することができます.

この計算機 フィンガーメソッド


我々は、バイナリで指をカウントする学習を開始します.
いくつかの指のシステムは、親指を開始しますが、私は一人一人が 、または半分のバイトを表すため、一人一人のnibble桁で表すことができるため、インデックスの指を使用するつもりです.(また、親指を使っていない指を握ることもできます)中指は2、リング指は4、ピンキーは8です.
1または0001
hexadecimal
2または0010 :

3または0011または2 ^ 1 + 2 ^ 0 :

7または0111または2 ^ 2 + 2 ^ 1 + 2 ^ 0 :

12または1100または2 ^ 3 + 2 ^ 2、または16進数のC

15または1111または2 ^ 3 + 2 ^ 2 + 2 ^ 1 + 2 ^ 0、または16進数のf

AND


と操作のために、あなたの左手を使用して、最初の番号と右の手を2番目の番号を確認します.各々の手のために、インデックス指は常に1、pinky 8を表すべきです.
ここでは、左手と6右側に6です.

今2つの手を取ると一緒に、手のひらに触れる、指の緊張を配置します.
上部に触れる指は答え(2)を表しています.

以下に例を示します:
12と7 = 4


10と5 = 0


OR


OR演算子と同じ入力を使いましょう.
ここでは、左手と6右側に6です.

今2つの手を取ると一緒に、手のひらに触れる、指の緊張を配置します.
少なくとも1本の指での場所は答え(7)を表します.

以下に例を示します:
12または7 = 15


10または5 = 15


8または1 = 9


XOR


ここでは、左手と6右側に6です.

今2つの手を取ると一緒に、手のひらに触れる、指の緊張を配置します.
正確に1つの指を持っている場所は答え(5)を表します.

以下に例を示します:
12のXOR 7 = 11


10 xor 5 = 15


ない


上にあるすべての指を取るし、それらを置く下にあるすべての指を入れて、それらを置く.
5 = 10ではない


結論


今すぐあなたの指でビット演算子を行う方法を知っている!うまくいけば、これはより直感的な方法でこれらの操作を理解するのに役立ちます.