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

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

王林
풀어 주다: 2023-08-26 18:57:12
앞으로
1260명이 탐색했습니다.

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿