개수 출력
이 마지막 단계에서는 비트 카운팅 프로그램을 개선하여 더 자세한 출력을 제공하고 설정된 비트 개수를 출력하는 다양한 방법을 보여줍니다.
bit_counter.c 파일을 수정하여 더 포괄적인 출력을 추가해 보겠습니다.
cd ~/project
nano bit_counter.c
다음 구현으로 코드를 업데이트합니다.
#include <stdio.h>
// 비트 연산 AND 를 사용하여 설정된 비트를 세는 함수
int countSetBits(int number) {
int count = 0;
while (number) {
count += number & 1;
number >>= 1;
}
return count;
}
int main() {
int number;
// 사용자에게 정수 입력을 요청합니다.
printf("정수를 입력하세요: ");
scanf("%d", &number);
// 설정된 비트의 개수를 셉니다.
int setBitCount = countSetBits(number);
// 여러 형식으로 개수를 출력합니다.
printf("십진수: %d\n", number);
printf("이진수 표현: ");
// 이진수 표현 출력
for (int i = 31; i >= 0; i--) {
int bit = (number >> i) & 1;
printf("%d", bit);
}
printf("\n");
// 설정된 비트 개수 결과 출력
printf("설정된 비트 개수: %d\n", setBitCount);
printf("설정된 비트 비율: %.2f%%\n",
(float)setBitCount / 32 * 100);
return 0;
}
프로그램을 컴파일하고 실행합니다.
gcc bit_counter.c -o bit_counter
./bit_counter
예시 출력:
정수를 입력하세요: 42
십진수: 42
이진수 표현: 00000000000000000000000000101010
설정된 비트 개수: 3
설정된 비트 비율: 9.38%
코드 설명:
- 이진수 표현 출력 추가
- 설정된 비트의 백분율 계산 포함
- 비트 연산을 사용하여 개별 비트 추출
- 다양한 관점에서 비트 개수를 제공하도록 출력 형식 지정
이제 프로그램은 정수의 비트 구성에 대한 포괄적인 정보를 제공합니다.
- 십진수 값
- 전체 32 비트 이진수 표현
- 설정된 비트의 총 개수
- 설정된 비트의 백분율