gpt4 book ai didi

objective-c - "NSBinarySearchingFirstEqual = (1UL << 8)"在枚举定义中是什么意思?

转载 作者:太空狗 更新时间:2023-10-30 03:40:35 25 4
gpt4 key购买 nike

我在框架目录的 NSArray.h 头文件中看到了这个:

enum {
NSBinarySearchingFirstEqual = (1UL << 8),
NSBinarySearchingLastEqual = (1UL << 9),
NSBinarySearchingInsertionIndex = (1UL << 10),
};
typedef NSUInteger NSBinarySearchingOptions;

“NSBinarySearchingFirstEqual = (1UL << 8)”有什么意义?这个枚举和“NSBinarySearchingOptions”类型定义之间有什么关系?谢谢。

最佳答案

“NSBinarySearchingFirstEqual = (1UL << 8)”等为枚举常量赋值。选择这些值,以便它们由单个位表示,从而允许选项与按位运算组合。 “<<”运算符是左移;你可以等价地写成:

enum {
NSBinarySearchingFirstEqual = 256,
NSBinarySearchingLastEqual = 512,
NSBinarySearchingInsertionIndex = 1024,
};

选项可以像这样组合:

NSBinarySearchingOptions opt = NSBinarySearchingFirstEqual | NSBinarySearchingLastEqual;

请注意,NSBinarySearchingOptions 类型定义为无符号整数,而不是枚举,因为它可以包含不是定义的枚举值之一的值(当多个值组合时)。

关于objective-c - "NSBinarySearchingFirstEqual = (1UL << 8)"在枚举定义中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2971370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com