0

我有一个整数,它是文本字段的长度,假设长度是 6。我需要找到最接近这个数字的 16 的倍数,然后得到这两个数字之间的差。所以在这种情况下,它将是 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 回答