ビットコンピューティングのトピック

チットは最近、人々、より巧妙なビット・コンピューティング・遊びのいくつかに会いました

Nが2の累乗である数を決定する方法1、?

ブロガーの最初の反応は、コンピューティング・ビットであるが、どのように左シフトをオンにすることは問題です。(もちろんの残りはゼロが、効率ああである前に2で割ったサイクルは、結果が1より大きくなっています。)

ここ数は、nは唯一のN・(N-1)= 0、この数Nは2のべき乗であるかを決定することができる場合

例えば> 8,9> 16,19-> 32 7-このように、2の数Nに最も近い電力を取得する方法2、。

実際には、ハッシュマップソースは、その答えは、次の抜粋を与えられています。

静的最終int型tableSizeFor(INTキャップ){ 
        int型のn =キャップ- 1。
        N | = N >>> 1。
        N | = N >>> 2。
        N | = N >>> 4。
        N | = N >>> 8。
        N | = N >>> 16。
        リターン(n <0の)?1:(N> = MAXIMUM_CAPACITY)?MAXIMUM_CAPACITY:N + 1。
    }

 intは2 ^ 32-1の最大値であるため、物事が実際にここで行う第一、第二の場所に最初の1を拡張することで、最初の二つは、トップ4に延びており、その上インチ

おすすめ

転載: www.cnblogs.com/fbw-gxy/p/11165983.html