>  기사  >  백엔드 개발  >  C/C++ 프로그램: 정수에 설정된 자릿수를 계산하시겠습니까?

C/C++ 프로그램: 정수에 설정된 자릿수를 계산하시겠습니까?

王林
王林앞으로
2023-08-26 18:57:121208검색

C/C++ 프로그램: 정수에 설정된 자릿수를 계산하시겠습니까?

세트 비트 수를 세는 것은 주어진 정수에 대해 1을 세는 것을 의미합니다. 이를 위해 적용할 수 있는 몇 가지 솔루션이 있습니다. 이 경우에는 문자열에서 1의 개수를 세어야 하는 이진수(정수의 이진 표현)가 있습니다.

1의 수를 세기 위해 문자열을 가져와서 각 요소를 반복하고 문자열에 있는 모든 1의 수를 셉니다. 예를 들어 17을 입력하면 17의 이진 표현은 2개의 1을 포함하는 10001이므로 출력은 2가 됩니다.

Input: Enter a positive integer: 6
Output: 2

설명

6의 이진 표현은 110이며, 이는 2개의 세트 비트를 갖습니다.

이 반복 방법에는 각 비트에 대해 한 번의 반복이 필요합니다. 그것은 숫자의 모든 자리를 통과합니다. 더 이상 비트가 설정되지 않으면 반복이 종료됩니다. 최악의 경우에는 최상위 비트만 설정된 32비트 워드에 대해 32번 반복됩니다. 이 솔루션은 가장 간단한 솔루션이며 1이 희박하고 최하위 비트인 경우 유용합니다.

#include <stdio.h>
int main(void) {
   unsigned int n = 34;
   for (c = 0; n; n >>= 1) {
      c += n & 1;
   }
   printf("%d\n", c);
}

위 내용은 C/C++ 프로그램: 정수에 설정된 자릿수를 계산하시겠습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제