国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

java 判斷一個數(shù)是否為2的整數(shù)次冪方法

2024-07-14 08:41:34
字體:
供稿:網(wǎng)友

當(dāng)不考慮負(fù)數(shù)時,對于此題分析可知,當(dāng)輸入值小于1時,此數(shù)肯定不是2的整數(shù)次冪。

當(dāng)輸入值大于一時,我們可以發(fā)現(xiàn)一個規(guī)律。2的整數(shù)次冪用二進(jìn)制表示為:

2d = 10b;  4d = 100b; 8d = 1000b

二進(jìn)制首位為一,其余各位均為零。

所以我們可以通過判斷輸入值轉(zhuǎn)換為二進(jìn)制時首位為一,其余各位為0,這樣就能保證輸入值為2的整數(shù)次冪。

但是這樣做又過于繁瑣,我們可以只判斷二進(jìn)制數(shù)中最后一次出現(xiàn)“1"的位置,使用String,lastIndexOf();方法即可。

而且我們還可以發(fā)現(xiàn)此規(guī)律同樣適用于輸入1的情況。

那么簡潔的代碼就這樣產(chǎn)生了。

public static boolean isPowerOfTwo(int n) {		String str = Integer.toBinaryString(n);		if(n < 1)			return false;		else if(str.lastIndexOf("1") == 0)			return true;		else			return false;  }

以上這篇java 判斷一個數(shù)是否為2的整數(shù)次冪方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 隆昌县| 沙湾县| 新化县| 蓝山县| 五大连池市| 扎兰屯市| 五大连池市| 牡丹江市| 凤冈县| 丽江市| 海城市| 高密市| 阳新县| 纳雍县| 湘潭县| 雅安市| 光泽县| 汾阳市| 天气| 武清区| 静海县| 安陆市| 集安市| 兴国县| 中超| 丹东市| 临沭县| 永胜县| 定边县| 深泽县| 四平市| 浦东新区| 名山县| 山东省| 随州市| 黄龙县| 五河县| 合江县| 巨鹿县| 乌拉特中旗| 汉中市|