で>>と>>>事業者間の違いは何ですが、両方のケースで63
を示しています次のJavaScriptコードを実行するJavaScript
alert(0xff >> 2);
alert(0xff >>> 2);
>>
と>>>
との違いは何ですか?その結果は等しいと思われる。
で>>と>>>事業者間の違いは何ですが、両方のケースで63
を示しています次のJavaScriptコードを実行するJavaScript
alert(0xff >> 2);
alert(0xff >>> 2);
>>
と>>>
との違いは何ですか?その結果は等しいと思われる。
>>
は、ビットを右にシフトするビット演算子です。右のビットはすべて失われます。
8 = 1000
^-->1
= 0000 = 0
>>
>>>
と同様のことを行い、それは、それが0から2 の範囲であること-1代わり+/- 2 -1を意味し、符号なしです。
のは、床に数ビット演算子を使用してみましょう、アクションで私の最初の文の結果を参照するには、次の範囲の上限を超えたときに
1.234 >> 0 = 1 // Ok, fraction lost
1.234 >>>0 = 1 // Ok, fraction lost
-1.23 >> 0 = -1 // Ok, fraction lost
-1.23 >>>0 = 4294967295 // (negative numbers are not within the range)
Math.pow(2,31) >> 0 = -2147483648 // 2^31 is out of range
Math.pow(2,31) >>> 0 = 2147483648
を、計算がその時に継続されます低い範囲、およびその逆(例えば、<<
)。次の図は、n = (n + 1) >> 0
と>>> 0
を使用したときに発生する現象を示しています。n
は最低境界から開始します。
// Signed Unsigned
>> >>>
-2147483647 0
-2147483646 1
... ...
2147483646 4294967294
2147483647 4294967295
-2147483647 0
-2147483646 1
いくつかのリンク:
なぜあなたは '8期待>> 4' 2なるには? – deceze
私の悪いのは8/16なので、それは本当に0ですが、>>と>>>の違いはどうですか?質問を修正しました – 0x90
@ ZoZo123私はあなたの質問に言い換えたので、それはもっとポイントです。私はあなたがそれを気にしないことを願っています;) –