判斷乙個數是否是2的整數次冪

2021-09-29 05:11:49 字數 2187 閱讀 6181

/**

* title: iscompletepower

* description: 判斷乙個數是否是2的整數次冪

* 判斷原理:

* 2的整數次冪,都是以1開頭,其餘其餘位為0的形式

* 例如:8的二進位制形式為:1 0 0 0

* 這樣的乙個數進行-1後,所得數的各位都會和原數的各位成反碼

* 例如:7的二進位制形式位:0 1 1 1

* 所以將8和7進行按位與運算,所得結果為0(按位與都是1才會得1)

* * 注:

* 此方法會將0和1也算作2的整數次冪,呼叫此方法時需要注意

* * @param num

* @return

*/public static boolean iscompletepower(int num)

執行0-99:

0: true

1: true

2: true

3: false

4: true

5: false

6: false

7: false

8: true

9: false

10: false

11: false

12: false

13: false

14: false

15: false

16: true

17: false

18: false

19: false

20: false

21: false

22: false

23: false

24: false

25: false

26: false

27: false

28: false

29: false

30: false

31: false

32: true

33: false

34: false

35: false

36: false

37: false

38: false

39: false

40: false

41: false

42: false

43: false

44: false

45: false

46: false

47: false

48: false

49: false

50: false

51: false

52: false

53: false

54: false

55: false

56: false

57: false

58: false

59: false

60: false

61: false

62: false

63: false

64: true

65: false

66: false

67: false

68: false

69: false

70: false

71: false

72: false

73: false

74: false

75: false

76: false

77: false

78: false

79: false

80: false

81: false

82: false

83: false

84: false

85: false

86: false

87: false

88: false

89: false

90: false

91: false

92: false

93: false

94: false

95: false

96: false

97: false

98: false

99: false

參考

java 判斷乙個數是否是2的整數次冪

有一道演算法題是這樣的,求乙個數是否是2的整數次冪。剛開始我的演算法是這樣寫的 讓這個數每次都除以2,然後再乘以2,看這兩個數是否相等,不相等就返回false。放在迴圈裡面讓它從頭除到尾。public boolean ispower intnumber else else return true 用...

判斷乙個數是否是2的整數次冪,python實現

問題 判斷乙個數是否是2的整數次冪?分析一 判斷乙個數是否是是2的整數次冪。方法和思路也很多,其中最簡單的就是,用這個數除以2用除的商再除以2,直到最後被除數為2,證明這個數是2的整數次冪。這種思路簡單,但是略顯笨重。我們採用第二種思路。分析二 由於2這個數在計算機中是乙個比較特殊的數。計算機是以二...

判斷乙個數是2的整數次冪

private static boolean ispoweroftwo int val 或者private static boolean ispoweroftwo int val 例如 val 8,用二進位制表示 1000 val 1 7,用二進位制表示 0111 val val 1 0 原理 在二...