0

誰かがこれをもっと簡単な言葉で説明できますか?

170 のバイナリ表現は です0000 0000 1010 1010。75 のバイナリ表現は です0000 0000 0100 1011。これら 2 つの値に対してビットごとの AND 演算を実行すると、 10 進数の0000 0000 0000 101010 である 2 進数の結果が生成されます。

0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 0000 1010

何が行われているのかがわかったら、これをクリックします。私はバイナリの基本的な理解があり、頭のてっぺんからいくつか知っています... バイナリで表される 1 は 、000000012 は00000010、3 は00000011、4 は00000100、5 は00000101、6 は です00000110。ですから、毎回桁が上がると何が起こっているのか理解できます。

このSQL開発者が減算しているときに何が起こっているかも理解していますが、t-sqlコードを使用して答えを見つけるときに何かが欠けているわけではありません....このリンクに記載されている内容に関して。

http://sqlfool.com/2009/02/bitwise-operations/

4

1 に答える 1

3

例の個々の 2 進数を列として見てください。特定の列の両方の入力行に1 がある場合、その列の出力は 1 です。それ以外の場合は 0 です。

AND 演算子は、値を「マスク」するために使用できます。したがって、数値の最初の下位 4 ビットだけが必要な場合は、次のように 15 と AND を使用できます。

0010 1101 1110 1100
0000 0000 0000 1111
-------------------
0000 0000 0000 1100  <-- the value of the first four bits in the top number

それが、リンクした SQL の例で起こっていることです。

freq_interval is one or more of the following:
1 = Sunday
2 = Monday
4 = Tuesday
8 = Wednesday
16 = Thursday
32 = Friday
64 = Saturday

ビット マスクに対応します。

0000 0001 = Sunday
0000 0010 = Monday
0000 0100 = Tuesday
0000 1000 = Wednesday
0001 0000 = Thursday
0010 0000 = Friday
0100 0000 = Saturday
于 2013-03-21T20:15:05.323 に答える