1

重複の可能性:
ビットシフトの初心者向けガイド?
JavaScript >>> 演算子とは何ですか?どのように使用しますか?

<<いくつかのコードを読んでいるときに出くわしました。

1<<1 //2
2<<1 //4
3<<1 //6
3<<2 //12 

  • これは何と呼ばれていますか?
  • これは何をしますか?
  • 4

    2 に答える 2

    4

    この回答から取得:


    左シフト (<<)

    整数は一連のビットとしてメモリに格納されます。たとえば、32 ビットとして格納される数値 6は次のintようになります。

    00000000 00000000 00000000 00000110
    

    このビット パターンを 1 つ左の位置 ( 6 << 1) にシフトすると、数値は 12 になります。

    00000000 00000000 00000000 00001100
    

    ご覧のとおり、桁が 1 桁左にシフトし、右側の最後の桁が 0 で埋められています。また、左にシフトすることは、2 のべき乗による乗算と同等であることに注意6 << 16 * 26 << 3ください6 * 8。優れた最適化コンパイラは、可能であれば乗算をシフトに置き換えます。

    非循環シフト

    これらは循環シフトではないことに注意してください。この値を 1 桁左にシフトする ( 3,758,096,384 << 1):

    11100000 00000000 00000000 00000000
    

    結果は 3,221,225,472 になります。

    11000000 00000000 00000000 00000000
    

    「最後から」シフトされた桁は失われます。回りません。

    于 2012-08-29T01:28:15.743 に答える
    1

    ビットごとの左シフト演算子です。

    a << bbのバイナリ表現の左にビットをシフトしますa

    于 2012-08-29T01:27:23.087 に答える