num이라는 정수가 주어지고 작업은 먼저 숫자의 2진수를 계산한 다음 숫자의 총 세트 비트를 계산하는 것입니다.
이진수의 세트 비트는 1로 표시됩니다. 정수 값의 이진수를 계산할 때마다 0과 1의 조합으로 구성됩니다. 따라서 컴퓨터 용어로 1자리를 set bit라고 합니다.
입력 - 정수 =50
출력 − 숫자의 총 설정 비트 수는 − 3입니다.
설명 − 숫자 50의 이진 표현은 110010이고 8자리 숫자로 계산하면 처음에 두 개의 0이 추가됩니다. 따라서 숫자의 총 세트 비트는 3입니다.
입력 - 정수 =10
출력 − 숫자의 총 설정 비트 수는 − 2
입니다.설명 − 숫자 10의 이진 표현은 00001010이고 8자리 숫자로 계산하면 처음에 4개의 0이 추가됩니다. 따라서 숫자의 총 설정 비트는 2입니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
정수형 변수에 숫자 입력
-
unsigned int
유형의 세트 비트의 총 개수를 저장하기 위해 변수 개수를 선언합니다. -
시작 루프 FOR i에서 1<<7 및 i> 0 및 i에서 i / 2
-
루프 내에서 num &1 ==TRUE를 확인한 다음 1을 인쇄하고 그렇지 않으면 0을 인쇄합니다.
-
숫자가 0이 아닐 때까지 총 비트 수를 계산하는 동안 루프 시작
-
루프 내에서 count =count + number &1로 설정하고 number>>=1
도 설정합니다. -
카운트 인쇄
예시
#include<iostream> using namespace std; //Count total set bits in a number unsigned int bits(unsigned int number){ unsigned int count = 0; unsigned i; //display the total 8-bit number cout<<"8-bit digits of "<<number<<" is: "; for (i = 1 << 7; i > 0; i = i / 2){ (number & i)? cout<<"1": cout<<"0"; } //calculate the total set bits in a number while (number){ count += number & 1; number >>= 1; } cout<<"\nCount of total set bits in a number are: "<<count; } int main(){ int number = 50; bits(number); return 0; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -
8-bit digits of 50 is: 00110010 Count of total set bits in a number are: 3