方法一 通过正则表达式限制该数字的二进制数以1开头,中间包含n个00,并以00结束 int num1 = 256; String nString =Integer.toBinaryString(num1); String regex = "^1(00)*$"; System.out.println(nString.matches(regex)); 方法二 通过位运算显示该数字大于0,该数字的二进制数只有首位数字是1,且1出现在奇数位上 int num2 = 128; boolean isPowerOfFour =num2>0 && (num2 & (num2-1))==0 && (num2 & 0xAAAAAAAA)==0; System.out.println(isPowerOfFour);