-4

ラメン用語で、ビット単位で何をしますか?演算子はJavascriptで実行し、その理由は次のとおりです。

8 | 1 ; //9
4

5 に答える 5

7

バイナリで8=1000バイナリ
で1=0001

各2進数を取り、それらをステートメント(1がtrue、0がfalse)のように扱うと、次のようになります。

1 || 0 = 1
0 || 0 = 0
0 || 0 = 0
0 || 1 = 1

結果は1001で、10進数で9です。

8と1だった場合、次のようになります。

1 && 0 = 0
0 && 0 = 0
0 && 0 = 0
0 && 1 = 0

結果は0になります

これらの使用方法の簡単な例を次に示します。

マスクを組み合わせたい場合は、OR演算子を使用します-

ファイルパーミッションの例を使用すると、次のフラグが設定されている可能性があります。

1st bit - execute (bin - 001, dec - 1)
2nd bit - write (bin - 010, dec - 2)
3rd bit - read (bin - 100, dec - 4)

読み取りと実行のためのマスクを作成したい場合は、次のようなread value | execute valueこと1 | 4を行います5(ビン内の101)

&これで、次の演算子を使用して、ファイルのアクセス許可をチェックし、ファイルにこれらのアクセス許可の両方があるかどうかを確認できるマスクができました。

サンプルファイル1(読み取り、書き込み、および実行があります)

その許可値は7(ビン内の111):111&101 = 101であるため、これらのパーマがあります

サンプルファイル2(読み取りと書き込みがあります)

その許可値は6(binで110):110&101 = 100であるため、マスクから提供された2つのパーマ(読み取り)は100(decで4)のみです。

于 2012-12-09T21:45:57.083 に答える
2

演算子はビットごとの|ORです。

8(基数10)は1000(基数2;バイナリ)です。1は0001です

だから、8 | 1(10進数)は1000に等しい| 0001バイナリ、つまり1001バイナリ、つまり9(基数10)。

于 2012-12-09T21:46:01.697 に答える
2

コンピューター上のすべての値は、バイナリ形式でハードウェアに保存されます。

1 = 0001
2 = 0010
3 = 0011
4 = 0100
etc.

|はOR演算子であり、両方の値のすべてのビットを組み合わせます。

8 - 1000
1 = 0001
--------
9 = 1001
于 2012-12-09T21:47:31.340 に答える
1

さて、あなたの例では、バイナリ表現を取ります:

8 = 0b1000
1 = 0b0001

次に、各ビットに論理ORを適用します(したがって「ビット単位」)。各ビットについて、一方、他方、または両方が1の場合、結果は1になり、それ以外の場合、結果は0になります。

8|1 = 0b1001

これは9です。

于 2012-12-09T21:46:15.480 に答える
1

2つの数値の2進表現を取り、それらの間の和集合( "または")を見つけます。

あなたが与えた2つを考えてみましょう:

binary(8) = 1000
binary(1) = 0001

したがって、ビットが最初の数値(8)または2番目の数値(1)で1である場合、または両方で1である場合、結果に引き継がれます。

つまり、2進数では「または」演算の結果であり、10進数では9であるためです8 | 1 = 91001

于 2012-12-09T21:48:24.707 に答える