昨天晚上在床上想到一个东西挺好玩的。拿出来分享一下。
以前写判断奇偶数的函数都是用retrun(0 == n%2 ? TRUE : FALSE)
这句话写。后来我想,一个整数的二进制码最后一位,奇数是1,偶数是0。我们把n和1按位与,就能得到1或者0。于是我的函数还能这么写:
BOOL IsOddNum(int n){ return(n&1 ? TRUE : FALSE); }
如果是奇数则输出TRUE,否则输出FALSE. 效率应该会比n%2高一些吧?
昨天晚上在床上想到一个东西挺好玩的。拿出来分享一下。
以前写判断奇偶数的函数都是用retrun(0 == n%2 ? TRUE : FALSE)
这句话写。后来我想,一个整数的二进制码最后一位,奇数是1,偶数是0。我们把n和1按位与,就能得到1或者0。于是我的函数还能这么写:
BOOL IsOddNum(int n){ return(n&1 ? TRUE : FALSE); }
如果是奇数则输出TRUE,否则输出FALSE. 效率应该会比n%2高一些吧?
喜欢这篇文章?打赏1元