【C language】判断一个正整数是否是2^n

简介: 【C language】判断一个正整数是否是2^n

题解:判断一个正整数是否是2^n(位运算方法)

1.题目

判断一个正整数是否是2^n

2.位运算法

思路:干掉二进制最右边的1,看是否是0

int main()
{
  int num = 16;
  if ((num & (num - 1)) == 0) printf("the num is a 2^n");
  else printf("the num is not a 2^n");
  return 0;
}


EOF

相关文章
|
11月前
abc序列数
abc序列数
47 0
04:奇偶ASCII值判断
04:奇偶ASCII值判断
369 0
|
存储 编译器
一次带你理清 ‘ || ’ 和 ‘ && ’ 和 ‘ ^ ’ 等常用操作符以及其余基本操作符(上)
一次带你理清 ‘ || ’ 和 ‘ && ’ 和 ‘ ^ ’ 等常用操作符以及其余基本操作符(上)
288 0
|
存储 编译器
一次带你理清 ‘ || ’ 和 ‘ && ’ 和 ‘ ^ ’ 等常用操作符以及其余基本操作符(下)
一次带你理清 ‘ || ’ 和 ‘ && ’ 和 ‘ ^ ’ 等常用操作符以及其余基本操作符(下)
264 0
|
Python
ZZULIOJ-1017,判断正整数位数(Python)
ZZULIOJ-1017,判断正整数位数(Python)
HDOJ(HDU) 2113 Secret Number(遍历数字位数的每个数字)
HDOJ(HDU) 2113 Secret Number(遍历数字位数的每个数字)
113 0
|
Java
HDOJ 1018 Big Number(大数位数公式)
HDOJ 1018 Big Number(大数位数公式)
107 0
HDOJ/HDU 2352 Verdis Quo(罗马数字与10进制数的转换)
HDOJ/HDU 2352 Verdis Quo(罗马数字与10进制数的转换)
172 0
HDOJ 2054 A == B ?(精确大数相等)
HDOJ 2054 A == B ?(精确大数相等)
121 0