이진 코드는 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인 위치에 해당)가 있습니다.
>= 1; } return $count; } // Driver Code $number= 12; echo "Number of setbits in $number: " .countSetBits($number); ?>
Number of setbits in 12: 2
> 1); } // Driver code // get value from user $n = 123; // function calling echo "Number of setbits in $n are: ".countSetBits($n); ?>
Number of setbits in 123 are: 6
결론적으로, 재귀 접근 방식과 PHP의 모든 비트를 통한 루프를 모두 사용하여 정수로 설정된 비트(1)를 계산할 수 있습니다. 루프 접근 방식에는 while 루프를 사용하여 정수의 각 비트를 반복하는 작업이 포함됩니다. 카운터 변수를 초기화하고 숫자가 0이 될 때까지 반복합니다. 루프 내에서 1과 함께 비트 AND를 사용하여 최하위 비트를 확인합니다. 1과 같으면 카운터를 증가시킵니다. 그런 다음 숫자를 1비트만큼 오른쪽으로 이동합니다. 이 프로세스는 모든 비트가 확인되고 최종 카운트가 반환될 때까지 계속됩니다.
재귀적 접근 방식의 경우 정수를 입력으로 사용하는 재귀 함수를 정의할 수 있습니다. 함수 내에서 1의 비트 AND 연산자를 사용하여 최하위 비트를 확인합니다. 1과 같으면 카운터를 증가시킵니다. 그런 다음 숫자를 1비트씩 오른쪽으로 이동하고 업데이트된 숫자로 함수를 재귀적으로 호출합니다. 기본 사례는 숫자가 0이 되는 경우이며, 이 시점에서 카운터를 반환합니다. 이 접근 방식은 숫자가 0이 될 때까지 설정된 비트를 반복적으로 계산합니다. 두 접근 방식 모두 정수로 설정된 비트를 계산하는 방법을 제공하므로 프로그래머의 특정 요구와 선호도에 따라 다양한 구현 선택이 가능합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3