음수가 고려되지 않으면이 분석의 경우 입력 값이 1보다 작을 때이 숫자는 2의 정수 전력이 아님을 알 수 있습니다.
입력 값이 1보다 클 때 규칙을 찾을 수 있습니다. 2의 정수 전력은 이진으로 다음과 같이 표현됩니다.
2D = 10B; 4D = 100B; 8D = 1000B
이진의 첫 번째 비트는 하나이고 나머지는 0입니다.
따라서 입력 값이 바이너리로 변환 될 때 첫 번째 비트는 하나이고 다른 비트는 0이므로 입력 값이 2의 정수 전력이라는 것을 판단 할 수 있습니다.
그러나이 작업을 수행하는 것은 너무 성가신 일입니다. 마지막으로 이진 번호에서 "1"의 위치 만 판단하고 String, lastIndexof ()를 사용할 수 있습니다. 방법.
또한이 규칙은 입력 1이 입력되는 경우에도 적용된다는 것을 알 수 있습니다.
그런 다음 간결한 코드가 생겨났습니다.
public static boolean ispoweroftwo (int n) {string str = integer.tobinarystring (n); if (n <1) false; else if (str.lastindexof ( "1") == 0) return true; elsereturn false; }위의 Java 방법은 2의 정수 전력이 편집기가 공유하는 전체 내용인지 여부를 결정합니다. 나는 그것이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.