n & (n-1) 去掉结尾的1
Java里的 >> 用于 signed shift,保留最高位的符号位,同时 右移的时候左边填充的bit与符号位相同。 http://sys.cs.rice.edu/course/comp314/10/p2/javabits.html
/* 11111111 11111111 11111111 11110000 >> 4 = 11111111 11111111 11111111 11111111 */ 0xFFFFFFF0 >> 4 == 0xFFFFFFFF
/* 00001111 11111111 11111111 11111111 >> 4 = 00000000 11111111 11111111 11111111 */ 0x0FFFFFFF >> 4 == 0x00FFFFFF
https://leetcode.com/problems/powx-n/
两种方法,迭代和递归。