이진 코드는 2진법을 사용하여 정보나 데이터를 표현하는 시스템입니다. 모든 값을 나타내기 위해 일반적으로 0과 1이라는 두 자리 숫자만 사용합니다. 이진 코드의 각 숫자를 비트(Binary Digit의 줄임말)라고 합니다.
이진 코드에서 각 숫자는 2의 거듭제곱을 나타냅니다. 가장 오른쪽 숫자부터 시작하여 2의 거듭제곱은 오른쪽에서 왼쪽으로 증가합니다. 예를 들어, 8비트 이진 코드에서 가장 오른쪽 비트는 2^0(1)을 나타내고, 다음 비트는 2^1(2)을 나타내고, 다음 비트는 2^2(4)를 나타내는 식입니다.
십진수 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으로 표현됩니다.
바이너리 코드에서 세트 비트(set bit)는 값이 1로 설정된 이진수(비트)를 의미하고, 클리어 비트(clear bit)는 값이 0으로 설정된 이진수를 의미합니다.
예
예를 들어 바이너리 코드 101010에는 3개의 세트 비트(값이 1인 위치에 해당)와 3개의 클리어 비트(값이 0인 위치에 해당)가 있습니다.
결론적으로, 재귀 접근 방식과 PHP의 모든 비트를 통한 루프를 모두 사용하여 정수로 설정된 비트(1)를 계산할 수 있습니다. 루프 접근 방식에는 while 루프를 사용하여 정수의 각 비트를 반복하는 작업이 포함됩니다. 카운터 변수를 초기화하고 숫자가 0이 될 때까지 반복합니다. 루프 내에서 1과 함께 비트 AND를 사용하여 최하위 비트를 확인합니다. 1과 같으면 카운터를 증가시킵니다. 그런 다음 숫자를 1비트씩 오른쪽으로 이동합니다. 이 프로세스는 모든 비트가 확인되고 최종 카운트가 반환될 때까지 계속됩니다.
재귀적 접근 방식의 경우 정수를 입력으로 사용하는 재귀 함수를 정의할 수 있습니다. 함수 내에서 1의 비트 AND 연산자를 사용하여 최하위 비트를 확인합니다. 1과 같으면 카운터를 증가시킵니다. 그런 다음 숫자를 1비트씩 오른쪽으로 이동하고 업데이트된 숫자로 함수를 재귀적으로 호출합니다. 기본 사례는 숫자가 0이 되는 경우이며, 이 시점에서 카운터를 반환합니다. 이 접근 방식은 숫자가 0이 될 때까지 설정된 비트를 반복적으로 계산합니다. 두 접근 방식 모두 설정 비트를 정수로 계산하는 방법을 제공하므로 프로그래머의 특정 요구와 선호도에 따라 다양한 구현 선택이 가능합니다.
위 내용은 정수의 세트 비트를 계산하는 PHP 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!