我有一个整数,它是文本字段的长度,假设长度为6.我需要找到这个数字的最接近的16的倍数,然后得到两个数字之间的差值。所以在这种情况下它会是8(也可能是4但我只对上升感兴趣)。
我在C#中实现了这个:
int padding = 16 - (txtUserPwd.TextLength % 16);
但是我无法弄清楚如何在Objective-C中做到这一点(特别是没有RoundUp)。
这可能很简单,但我无法解决,任何帮助都表示赞赏!
答案 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