0

テキスト フィールドの長さである整数があり、長さが 6 であるとします。この数値に最も近い 16 の倍数を見つけて、2 つの数値の差を取得する必要があります。したがって、この場合は 8 になります (4 になることもありますが、私は上に行くことだけに関心があります)。

私はC#でこれを実装しています:

int padding = 16 - (txtUserPwd.TextLength % 16);

ただし、Objective-C でこれを行う方法がわかりません (特に RoundUp を使用しない場合)。

おそらく非常に簡単ですが、解決できません。助けていただければ幸いです。

4

1 に答える 1

0

これを試して:

-(int)differenceToNextPowerOfTwo:(int)n
{
    unsigned int v = n;
    v--;
    v |= v >> 1;
    v |= v >> 2;
    v |= v >> 4;
    v |= v >> 8;
    v |= v >> 16;
    v++;
    return v - n;
}

ソース: http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2

于 2013-08-29T20:42:18.980 に答える