넘치게 채우기

비트 연산 : 십진수의 이진수 표기에서의 1의 개수 구하기 본문

컴퓨터과학/비트마스킹

비트 연산 : 십진수의 이진수 표기에서의 1의 개수 구하기

riveroverflow 2023. 9. 1. 23:08
728x90
반응형

십진수를 이진수로 표기하고, 이진수 표기에서 1을 구하고 싶다면, 

십진수 i를 2로 나눈 값 i/2의 1의 개수에, i가 홀수면 1을 더하고, 짝수인 경우 더하지 않으면 된다.

 
#include <iostream>

// 십진수를 이진수로 변환하고 1의 개수를 구하는 함수
int countOnesInBinary(int n)
{
    int count = 0;

    while (n > 0)
    {
        count += n % 2; // 현재 비트가 1이면 count에 1을 더함
        n /= 2;         // 십진수를 2로 나눔
    }

    return count;
}

int main()
{
    int i = 25; // 예시로 25를 사용
    int binaryCount = countOnesInBinary(i);

    std::cout << i << "의 이진 표현에서 1의 개수: " << binaryCount << std::endl;

    return 0;
}

 

 

참고: https://riveroverflow.tistory.com/164

 

 
 
728x90
반응형

'컴퓨터과학 > 비트마스킹' 카테고리의 다른 글

비트 연산: 가장 오른쪽 1을 없애기  (0) 2023.11.29