我有一个整数,它是文本字段的长度,假设长度是 6。我需要找到最接近这个数字的 16 的倍数,然后得到这两个数字之间的差。所以在这种情况下,它将是 8(也可能是 4,但我只对上升感兴趣)。
我在 C# 中有一个实现:
int padding = 16 - (txtUserPwd.TextLength % 16);
但是我不知道如何在 Objective-C 中做到这一点(尤其是没有 RoundUp)。
这可能很简单,但我无法解决,感谢任何帮助!
我有一个整数,它是文本字段的长度,假设长度是 6。我需要找到最接近这个数字的 16 的倍数,然后得到这两个数字之间的差。所以在这种情况下,它将是 8(也可能是 4,但我只对上升感兴趣)。
我在 C# 中有一个实现:
int padding = 16 - (txtUserPwd.TextLength % 16);
但是我不知道如何在 Objective-C 中做到这一点(尤其是没有 RoundUp)。
这可能很简单,但我无法解决,感谢任何帮助!
尝试这个:
-(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