判断一个无符号整数是不是2的幂
生活随笔
收集整理的這篇文章主要介紹了
判断一个无符号整数是不是2的幂
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
C版本:
?
#include<stdio.h>
//原理:2的冪的二進(jìn)制位中有且只有一位是1
int Is2Power(unsigned int d)
{
?int i = sizeof(d) << 3;??//這里i得到d所占的位數(shù)(bits),因?yàn)橐獙?duì)d的每一位作判斷
?unsigned int v;
?while(i > 0)
?{
??v = 1 & d;????//取得d的最后一位
??d >>= 1;
??if(v == 1)
??{
???if(d == 0)
????return 1;??//是2的冪
???else
????return 0;??//不是2的冪
??}
??i--;
?}
?return 0;
}
void main()
{
?unsigned int d;
?int i = 0;
?while(i < 9999)
?{
??if(Is2Power(i))
???printf("%d? is 2's Power./n", i);
??i++;
?}
}
總結(jié)
以上是生活随笔為你收集整理的判断一个无符号整数是不是2的幂的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Redux/Mobx] 你有了解Rxj
- 下一篇: oracle根据中文获取拼音全拼函数