주어진 숫자가 2의 거듭제곱인지 확인하는 JavaScript 프로그램

王林
풀어 주다: 2023-09-07 19:13:02
앞으로
1259명이 탐색했습니다.

JavaScript 程序检查给定数字是否是 2 的幂

주어진 숫자가 2만 곱해서 생성되면 그 숫자는 2의 거듭제곱입니다. 이 튜토리얼에서는 주어진 숫자가 2의 거듭제곱인지 확인하는 방법을 배웁니다. 여기서는 주어진 숫자가 2의 거듭제곱인지 확인하는 5가지 방법을 살펴보겠습니다.

Math.pow() 메소드 사용

JavaScript에서 숫자는 최대 64비트를 포함할 수 있습니다. 따라서 for 루프와 Math.pow() 메서드를 사용하여 1에서 64까지 거듭제곱된 2를 찾을 수 있습니다. For 루프에서는 2의 i제곱을 숫자와 비교할 수 있습니다. 숫자와 일치하면 true를 반환하고, 그렇지 않으면 루프가 종료될 때 false를 반환합니다.

문법

사용자는 아래 구문에 따라 for 루프와 Math.pow() 메서드를 사용하여 숫자가 2로 나누어지는지 확인할 수 있습니다.

으아아아

알고리즘

  • 1단계 - for 루프를 사용하여 i=1부터 i=64까지 숫자를 반복합니다.

  • 2단계 - for 루프에서 Math.pow() 메서드를 사용하여 2의 i승을 구합니다.

  • 3단계 - i 거듭제곱으로 올린 2를 숫자와 비교합니다. 일치하는 것이 있으면 true를 반환합니다.

  • 4단계 - true를 반환하지 않고 for 루프가 종료되면 false를 반환합니다.

예 1

아래 예에서는 위의 방법을 사용하여 주어진 숫자가 2의 거듭제곱인지 확인합니다. 출력에서 사용자는 숫자가 거듭제곱인지 아닌지에 따라 checkPowOf2() 함수가 true 또는 false를 반환하는 것을 관찰할 수 있습니다.

으아아아

Math.log() 메소드 사용

밑이 2인 숫자의 로그를 취할 수 있습니다. 숫자가 정수이면 2의 거듭제곱입니다.

문법

사용자는 아래 구문에 따라 Math.log() 메서드를 사용하여 숫자가 2의 거듭제곱인지 확인할 수 있습니다.

으아아아

예 2

아래 예에서는 먼저 숫자의 밑이 2인 로그를 가져온 다음, parseInt() 메서드를 사용하여 로그에서 정수를 추출합니다. 로그와 일치하면 함수는 true를 반환합니다.

으아아아

비트 세트를 세어 결정

숫자가 2의 거듭제곱이면 설정된 비트가 하나만 포함됩니다. 그래서 우리는 숫자의 각 자리를 하나씩 확인할 수 있습니다. 첫 번째 세트 비트를 얻으면 isSetBit를 true로 설정합니다. 나중에 비트를 다시 설정하면 그 숫자는 2의 거듭제곱이 아니라고 말할 수 있습니다.

문법

사용자는 아래 구문에 따라 설정된 자릿수를 계산하여 숫자가 2의 거듭제곱인지 확인할 수 있습니다.

으아아아

알고리즘

  • 1단계 - 숫자가 0이 아닐 때 while 루프를 사용하여 반복합니다.

  • 2단계 - "isSetBit" 변수의 값이 true인지 확인하고 오류를 반환합니다.

  • 3단계 - isSetBit 변수의 값이 false이고 현재 비트가 설정 비트인 경우 isSetBit 변수의 값을 true로 변경합니다.

  • 4단계 - 숫자를 오른쪽으로 1씩 이동합니다.

예 3

아래 예에서는 while 루프를 사용하여 숫자를 반복하고 숫자의 각 자릿수를 확인합니다. 숫자에서 두 번째 세트 비트를 얻으면 false를 반환합니다.

으아아아

"&" 연산자를 사용하세요

숫자가 2의 거듭제곱인 경우 가장 왼쪽 비트에는 1만 포함됩니다. 2의 거듭제곱에서 1을 빼면 숫자의 가장 왼쪽 비트에는 0이 포함되고 다른 비트에는 1이 포함됩니다. 따라서 n과 n-1 사이에서 "&" 연산을 수행하면 2의 거듭제곱과 같은 모든 숫자에 대해 항상 0이 반환됩니다.

문법

사용자는 아래 구문에 따라 '&' 연산자를 사용하여 주어진 숫자가 2의 거듭제곱인지 확인할 수 있습니다.

으아아아

예 4

아래 예에서는 먼저 if 문의 숫자가 0이 아닌지 확인합니다. 그런 다음 "n & n-1"이 0과 같은지 확인하여 숫자가 2의 거듭제곱인지 확인합니다.

으으으으

위 내용은 주어진 숫자가 2의 거듭제곱인지 확인하는 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿