우리에게 num이라는 정수가 주어지고 작업은 먼저 숫자의 이진수를 계산하고 숫자의 총 자릿수를 계산하는 것입니다.
입력 - 정수 =50
출력 − 숫자의 총 비트 수는 − 6입니다.
설명 − 숫자 50의 이진 표현은 110010이고 8자리 숫자로 계산하면 처음에 두 개의 0이 추가됩니다. 따라서 숫자의 총 비트는 6입니다.
입력 - 정수 =10
출력 − 숫자의 총 비트 수는 − 6입니다.
설명 − 숫자 10의 이진 표현은 00001010이고 8자리 숫자로 계산하면 처음에 4개의 0이 추가됩니다. 따라서 숫자의 총 비트는 4입니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
정수형 변수에 숫자 입력
-
unsigned int
유형의 총 비트 수를 저장할 변수 count 선언 -
시작 루프 FOR i에서 1<<7 및 i> 0 및 i에서 i / 2
-
루프 내에서 num &1 ==TRUE를 확인한 다음 1을 인쇄하고 그렇지 않으면 0을 인쇄합니다.
-
숫자가 0이 아닐 때까지 총 비트 수를 계산하는 동안 루프 시작
-
루프 내에서 count 값을 1씩 증가시키고 숫자>>=1
을 설정합니다. -
카운트 인쇄
예
#include using namespace std; //Count total 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 bits in a number while (number){ count++; number >>= 1; } cout<<"\nCount of total 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 bits in a number are: 6