현재 위치: > 최신 기사 목록> PHP를 사용하여 정수의 세트 비트 수를 계산하는 방법

PHP를 사용하여 정수의 세트 비트 수를 계산하는 방법

M66 2025-06-20

이진 코드 란 무엇입니까?

이진 코드는 이진 번호 시스템을 사용하여 정보 또는 데이터를 나타내는 시스템입니다. 모든 값을 나타내기 위해 일반적으로 0과 1의 숫자 만 사용합니다. 이진 코드의 각 숫자를 비트 (이진 번호의 약어)라고합니다.

이진 코드에서 각 숫자는 2의 전력을 나타냅니다. 가장 오른쪽에서 시작하여 2의 전력은 오른쪽에서 왼쪽으로 증가합니다. 예를 들어, 8 비트 이진 코드에서 가장 오른쪽 비트는 2 0 (1)을 나타내고 다음 비트는 2 1 (2) 등을 나타냅니다.

이진 번호의 예

10 진수 42를 이진 코드로 변환합시다. 42를 바이너리로 변환하기 위해, 우리는 그것을 2로 연속적으로 나누고 몫이 0이 될 때까지 나머지를 추적합니다.

단계별 프로세스는 다음과 같습니다.

1 단계 : 42 ÷ 2 = 21, 나머지는 0입니다.

2 단계 : 21 ÷ 2 = 10, 나머지는 1입니다.

3 단계 : 10 ÷ 2 = 5, 나머지는 0입니다.

4 단계 : 5 ÷ 2 = 2, 나머지는 1입니다.

5 단계 : 2 ÷ 2 = 1, 나머지는 0입니다.

6 단계 : 1 ÷ 2 = 0, 나머지는 1입니다.

이진 표현을 얻기 위해 바닥에서 시작하여 (마지막 나머지)에서 나머지를 바닥에서 읽습니다. 42의 이진 코드는 101010 이므로 소수점 42는 이진 코드에서 101010으로 표시됩니다.

SetBit은 무엇입니까?

이진 코드의 맥락에서, 설정 비트는 1으로 설정된 이진 번호 (비트)를 나타냅니다. 반면에, 명확한 비트는 이진 번호 (비트)를 0으로 설정합니다.

비트 예제

예를 들어, 이진 코드 101010에는 3 개의 세트 (1의 해당 위치)와 3 개의 투명 비트 (0의 해당 위치)가 있습니다.

PHP 프로그램 : 정수의 세트 비트 수 계산

방법 1 : 정수의 모든 비트를 통해 루프

다음은 루프 트래버스 방법을 사용하여 세트 비트 수를 계산하는 PHP 코드 예입니다.

<?php
// Function to get no of set bits in binary representation of positive integer n
function countSetBits($n)
{
    $count = 0;
    while ($n) {
        $count += $n & 1;
        $n > > = 1;
    }
    return $ count;
}

// 드라이버 코드
$ 번호 = 12;
echo "$ 숫자의 setbits 수 :". Countsetbits ($ 번호);
?>

산출

12 : 2의 세트 비트 수

방법 2 : 재귀 방법

다음은 재귀 메소드를 사용하여 설정 비트 수를 계산하는 PHP 코드 예제입니다.

<?php
// PHP implementation of recursive approach to find the number of set bits
function countSetBits($n)
{
    // base case
    if ($n == 0)
        return 0;
    else
        // if last bit set, add 1 else add 0
        return ($n & 1) + countSetBits($n > > 1);
}

// 드라이버 코드
$ n = 123;
echo "$ n의 setbits 수는 다음과 같습니다.". Countsetbits ($ N);
?>

산출

123의 세트 비트 수는 다음과 같습니다

요약

요약하면, 우리는 재귀 방법을 사용하고 모든 비트를 통해 루프를 사용하여 정수에서 세트 비트 (1)의 수를 계산할 수 있습니다. 루프 방법은 while 루프를 사용하여 각 비트의 정수에 반복하는 것을 포함합니다. 카운터 변수를 초기화하고 숫자가 0이 될 때까지 반복합니다. 루프 내부에서 비트와 연산자를 1로 사용하여 비트와 작업을 수행하여 가장 유의미한 비트를 확인합니다. 그것이 1과 같으면 카운터를 증가시킵니다. 그런 다음 숫자를 1 자리 씩 오른쪽으로 이동합니다. 이 프로세스는 모든 비트를 확인하고 최종 카운트가 반환 될 때까지 계속됩니다.

재귀 방법의 경우 정수를 입력으로 취하는 재귀 함수를 정의 할 수 있습니다. 함수 내부에서는 연산자와 비트를 사용하고 1은 가장 중요하지 않은 비트를 확인합니다. 1과 같으면 카운터를 늘릴 것입니다. 그런 다음 숫자를 1 비트 씩 바꾸고 업데이트 된 숫자를 사용하여 기능을 재귀 적으로 호출합니다. 기본 사례는 숫자가 0이되면 카운터 값을 반환하는 것입니다. 이 방법은 숫자가 0이 될 때까지 설정 비트를 재귀 적으로 계산합니다.

두 방법 모두 정수의 설정 비트를 계산하는 방법을 제공하며 프로그래머는 요구 사항과 선호도에 따라 다양한 구현을 선택할 수 있습니다.