博客
关于我
Objective-C实现判断整数是否为2的幂isPowerOfTwo算法(附完整源码)
阅读量:794 次
发布时间:2023-02-20

本文共 746 字,大约阅读时间需要 2 分钟。

在Objective-C中判断整数是否为2的幂,可以借助位运算实现。一个整数要是2的幂,当且仅当它大于0,并且其二进制表示中仅包含一个1。具体来说,对于任意整数n,如果满足以下两个条件之一:

  • n > 0
  • n & (n - 1) == 0
  • 那么n就是2的幂。

    以下是一个完整的Objective-C代码示例,包含一个判断整数是否为2的幂的方法,并附有main函数的测试代码:

    #import 
    @interface PowerOfTwoChecker : NSObject- (BOOL)isPowerOfTwo:(int)n;@end
    #import 
    @interface PowerOfTwoChecker : NSObject- (BOOL)isPowerOfTwo:(int)n { return n > 0 && (n & (n - 1)) == 0;}@end
    int main(int argc, const char *argv) {    @autoreleasepool {        int number = 8; // 测试2的幂        BOOL isPower = [PowerOfTwoChecker new].isPowerOfTwo(number);        printf("Number: %d, isPowerOfTwo: %s\n", number, isPower ? "YES" : "NO");    }    return 0;}

    这个代码实现了一个简单的判断2的幂的方法。通过位运算n & (n - 1),我们可以快速判断一个数是否是2的幂。这个方法的时间复杂度为O(1),非常高效。

    转载地址:http://vjifk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现harris算法(附完整源码)
    查看>>
    Objective-C实现HashTable哈希表算法(附完整源码)
    查看>>
    Objective-C实现haversine distance斜距算法(附完整源码)
    查看>>
    Objective-C实现heap sort堆排序算法(附完整源码)
    查看>>
    Objective-C实现heap堆算法(附完整源码)
    查看>>
    Objective-C实现highest response ratio next高响应比优先调度算法(附完整源码)
    查看>>
    Objective-C实现hill climbing爬山法用来寻找函数的最大值算法(附完整源码)
    查看>>
    Objective-C实现Hopcroft算法(附完整源码)
    查看>>
    Objective-C实现hornerMethod霍纳法算法(附完整源码)
    查看>>
    Objective-C实现Http Post请求(附完整源码)
    查看>>
    Objective-C实现http下载文件 (附完整源码)
    查看>>
    Objective-C实现Http协议下载文件(附完整源码)
    查看>>
    Objective-C实现ID3贪心算法(附完整源码)
    查看>>
    Objective-C实现IIR 滤波器算法(附完整源码)
    查看>>
    Objective-C实现IIR数字滤波器(附完整源码)
    查看>>
    Objective-C实现insertion sort插入排序算法(附完整源码)
    查看>>
    Objective-C实现integer partition整数分区算法(附完整源码)
    查看>>
    Objective-C实现integerPartition整数划分算法(附完整源码)
    查看>>
    Objective-C实现interpolation search插值搜索算法(附完整源码)
    查看>>
    Objective-C实现Interpolation search插值查找算法(附完整源码)
    查看>>