objective-c - 计算按位值的数量

标签 objective-c c

我面临一个简单的问题,但我已经找到了解决方案:)。

如果我们有这样的例子:

typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
    UIViewAutoresizingNone                 = 0,
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
    UIViewAutoresizingFlexibleWidth        = 1 << 1,
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
    UIViewAutoresizingFlexibleHeight       = 1 << 4,
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};

还有这样的属性:

@property (nonatomic, assign) UIViewAutoresizing autoresizingMask;

还有这个:

self.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth ;

问题是:如何知道 autoresizingMask 属性中的项目数(UIViewAutoresizing 值)? (在我的例子中我有 2)

最佳答案

有一个__builtin_popcount函数,它通常在大多数现代硬件上转换为一条指令。它基本上给出了整数中设置的位数。

关于objective-c - 计算按位值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23951318/

相关文章:

objective-c - 如何将控制台输出到 uitextview?访问控制台日志

C - 轻松将 void** 转换为 char* 吗?

c - 为什么 fgets() 不接受 C 程序中的输入?

用于创建位掩码的 C 宏——可能吗?我是否发现了 GCC 错误?

c - 按位与 C 中的 HEX 和 CHAR

iphone - 在 View 上使用drawInRect?

iphone - 如何在 UIButton 中从正常状态和选定状态下的标题文本设置 UIImage

objective-c - 如何识别 iOS 设备上收到的 udp 数据包的发件人 IP 地址?

使用字符指针崩溃;使用普通字符不会崩溃——但为什么呢?

ios - UISearchbar 在 UIScrollView 中消失