找到一个数字的最接近的倍数与另一个数字 - 目标C.

时间:2013-08-29 18:33:46

标签: objective-c cocoa-touch

我有一个整数,它是文本字段的长度,假设长度为6.我需要找到这个数字的最接近的16的倍数,然后得到两个数字之间的差值。所以在这种情况下它会是8(也可能是4但我只对上升感兴趣)。

我在C#中实现了这个:

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

但是我无法弄清楚如何在Objective-C中做到这一点(特别是没有RoundUp)。

这可能很简单,但我无法解决,任何帮助都表示赞赏!

1 个答案:

答案 0 :(得分: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