判断一个数是否是2的整数次幂

	/**
	 * <p>Title: isCompletePower</p>  
	 * <p>Description: 判断一个数是否是2的整数次幂
	 * 判断原理:
	 * 2的整数次幂,都是以1开头,其余其余位为0的形式
	 * 例如:8的二进制形式为:1 0 0 0
	 * 这样的一个数进行-1后,所得数的各位都会和原数的各位成反码
	 * 例如:7的二进制形式位:0 1 1 1
	 * 所以将8和7进行按位与运算,所得结果为0(按位与都是1才会得1)
	 * 
	 * 注:
	 * 此方法会将0和1也算作2的整数次幂,调用此方法时需要注意
	 * </p>  
	 * @param num
	 * @return
	 */
	public static boolean isCompletePower(int num){
		int bitAnd = num & (num - 1);
		return bitAnd == 0;
	}

运行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

参考

https://blog.csdn.net/Future_LL/article/details/90754376

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琴瘦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值