GFG App
Open App
Browser
Continue

# Count total bits in a number

Given a positive number n, count total bit in it.
Examples:

```Input : 13
Output : 4
Binary representation of 13 is 1101

Input  : 183
Output : 8

Input  : 4096
Output : 13```

Method 1 (Using Log)

The log2(n) logarithm in base 2 of n, which is the exponent to which 2 is raised to get n only integer and we add 1 find total bit in a number in log(n) time.

## C++

 `// C++ program to find total bit in given number ` `#include      ` `#include ` ` `  `unsigned countBits(unsigned ``int` `number) ` `{     ` `   `  `    ``// log function in base 2 ` `    ``// take only integer part ` `    ``return` `(``int``)log2(number)+1; ` `} ` ` `  `// Driven program     ` `int` `main() ` `{ ` `    ``unsigned ``int` `num = 65; ` `    ``std::cout<

## C

 `// C program to find total bit in given number ` `#include        ` `#include ` ` `  `unsigned countBits(unsigned ``int` `number) ` `{       ` `      ``// log function in base 2  ` `      ``// take only integer part ` `      ``return` `(``int``)log2(number)+1; ` `} ` ` `  `// Driven program        ` `int` `main() ` `{ ` `    ``unsigned ``int` `num = 65; ` `    ``printf``(``"%d\n"``, countBits(num)); ` `    ``return` `0; ` `}  `

## Java

 `// Java program to  ` `// find total bit ` `// in given number ` `import` `java.io.*; ` ` `  `class` `GFG  ` `{ ` `    ``static` `int` `countBits(``int` `number) ` `    ``{  ` `         `  `        ``// log function in base 2  ` `        ``// take only integer part ` `        ``return` `(``int``)(Math.log(number) /  ` `                     ``Math.log(``2``) + ``1``); ` `    ``} ` `     `  `    ``// Driver code ` `    ``public` `static` `void` `main (String[] args)  ` `    ``{ ` `        ``int` `num = ``65``; ` `         `  `        ``System.out.println(countBits(num)); ` `                                 `  `    ``} ` `} ` ` `  `// This code is contributed by vij `

## Python3

 `# Python3 program to find  ` `# total bit in given number ` `import` `math ` `def` `countBits(number): ` `     `  `    ``# log function in base 2  ` `    ``# take only integer part ` `    ``return` `int``((math.log(number) ``/`  `                ``math.log(``2``)) ``+` `1``); ` ` `  `# Driver Code ` `num ``=` `65``; ` `print``(countBits(num)); ` ` `  `# This code is contributed by mits `

## C#

 `// C# program to find total bit ` `// in given number ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``static` `uint` `countBits(``uint` `number) ` `    ``{      ` `         `  `        ``// log function in base 2  ` `        ``// take only integer part ` `        ``return` `(``uint``)Math.Log(number , 2.0) + 1; ` `    ``} ` `     `  `    ``// Driver code ` `    ``public` `static` `void` `Main()  ` `    ``{ ` `        ``uint` `num = 65; ` `         `  `        ``Console.WriteLine(countBits(num)); ` `                                 `  `    ``} ` `} ` ` `  `// This code is contributed by Sam007. `

## PHP

 ` `

## Javascript

 ``

Output

`7`

Time Complexity : O(logn)

Auxiliary Space : O(1)

Method 2 (Using Bit Traversal)

## C

 `/* Function to get no of bits in binary ` `   ``representation of positive integer */` `#include           ` `    `  `unsigned ``int` `countBits(unsigned ``int` `n) ` `{ ` `   ``unsigned ``int` `count = 0; ` `   ``while` `(n) ` `   ``{ ` `        ``count++; ` `        ``n >>= 1; ` `    ``} ` `    ``return` `count; ` `} ` `  `  `/* Driver program*/` `int` `main() ` `{ ` `    ``int` `i = 65; ` `    ``printf``(``"%d"``, countBits(i)); ` `    ``return` `0; ` `} `

## Java

 `/* Function to get no of bits in binary ` `representation of positive integer */` `class` `GFG { ` ` `  `    ``static` `int` `countBits(``int` `n) ` `    ``{ ` `        ``int` `count = ``0``; ` `        ``while` `(n != ``0``) ` `        ``{ ` `            ``count++; ` `            ``n >>= ``1``; ` `        ``} ` `         `  `        ``return` `count; ` `    ``} ` `     `  `    ``/* Driver program*/` `    ``public` `static` `void` `main(String[] arg) ` `    ``{ ` `        ``int` `i = ``65``; ` `        ``System.out.print(countBits(i)); ` `    ``} ` `} ` ` `  `// This code is contributed by Smitha. `

## Python3

 `# Function to get no of bits  ` `# in binary representation  ` `# of positive integer  ` ` `  `def` `countBits(n): ` ` `  `    ``count ``=` `0` `    ``while` `(n): ` `        ``count ``+``=` `1` `        ``n >>``=` `1` `         `  `    ``return` `count ` ` `  `# Driver program ` `i ``=` `65` `print``(countBits(i)) ` ` `  `# This code is contributed ` `# by Smitha `

## C#

 `/* Function to get no of bits  ` `in binary representation of  ` `positive integer */` `using` `System; ` ` `  `class` `GFG ` `{ ` `    ``static` `int` `countBits(``int` `n) ` `    ``{ ` `        ``int` `count = 0; ` `        ``while` `(n != 0) ` `        ``{ ` `            ``count++; ` `            ``n >>= 1; ` `        ``} ` `         `  `        ``return` `count; ` `    ``} ` `     `  `    ``// Driver Code ` `    ``static` `public` `void` `Main () ` `    ``{ ` `        ``int` `i = 65; ` `        ``Console.Write(countBits(i)); ` `    ``} ` `} ` ` `  `// This code is contributed  ` `// by akt_mit. `

## PHP

 `>= 1; ` `    ``} ` `    ``return` `\$count``; ` `} ` ` `  `// Driver Code ` `\$i` `= 65; ` `echo``(countBits(``\$i``)); ` ` `  `// This code is contributed by Ajit. ` `?> `

## Javascript

 ``

Output

`7`

Time Complexity : O(logn)

Auxiliary Space : O(1)

Method 3 ( Using conversion from binary to string)

## C++

 `// C++ program to implement the approach ` `#include ` `using` `namespace` `std; ` ` `  `// function to count the number of bits in a number n ` `int` `count_bits(``int` `n) ` `{ ` ` `  `  ``// to_string() returns the binary string  ` `  ``// representation of the number n ` `  ``string binary = bitset< 64 >(n).to_string(); ` `   `  `  ``// returning the length of the binary string ` `  ``return` `64 - binary.find(``'1'``); ` `} ` ` `  `int` `main() ` `{ ` `    ``int` `a = 65; ` `    ``int` `b = 183; ` ` `  `    ``cout << ``"Total bits in "` `<< a << ``" : "` `<< count_bits(a) << endl; ` `    ``cout << ``"Total bits in "` `<< b << ``" : "` `<< count_bits(b) << endl; ` `} ` ` `  `// This code is contributed by phasing17`

## Java

 `// Java code to implement the approach ` `class` `GFG { ` ` `  `    ``// function to count the number of bits in a number n ` `    ``static` `int` `count_bits(``int` `n) ` `    ``{ ` `        ``// return the length of the binary string ` `        ``return` `Integer.toBinaryString(n).length(); ` `    ``} ` ` `  `    ``// Driver Code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `a = ``65``; ` `        ``int` `b = ``183``; ` ` `  `        ``// function call ` `        ``System.out.printf(``"Total bits in %d: %d\n"``, a, ` `                          ``count_bits(a)); ` `        ``System.out.printf(``"Total bits in %d: %d\n"``, b, ` `                          ``count_bits(b)); ` `    ``} ` `} ` ` `  `// this code is contributed by phasing17`

## Python3

 `# function to count the number of bits in a number n ` `def` `count_bits(n): ` `  ``# bin(n) returns a binary string representation of n preceded by '0b' in python ` `  ``binary ``=` `bin``(n) ` `   `  `  ``# we did -2 from length of binary string to ignore '0b' ` `  ``return` `len``(binary)``-``2` ` `  `a ``=` `65` `b ``=` `183` ` `  `print``(f``"Total bits in {a}: {count_bits(a)}"``) ` `print``(f``"Total bits in {b}: {count_bits(b)}"``) ` ` `  `# This code is contributed by udit`

## C#

 `// C# code to implement the approach ` ` `  `using` `System; ` ` `  `class` `GFG { ` ` `  `    ``// function to count the number of bits in a number n ` `    ``static` `int` `count_bits(``int` `n) ` `    ``{ ` `        ``// return the length of the binary string ` `        ``return` `Convert.ToString(n, 2).Length; ` `    ``} ` ` `  `    ``// Driver Code ` `    ``public` `static` `void` `Main(``string``[] args) ` `    ``{ ` `        ``int` `a = 65; ` `        ``int` `b = 183; ` ` `  `        ``// function call ` `        ``Console.WriteLine(``"Total bits in "` `+ a + ``" : "` `                          ``+ count_bits(a)); ` `        ``Console.WriteLine(``"Total bits in "` `+ b + ``" : "` `                          ``+ count_bits(b)); ` `    ``} ` `} ` ` `  `// this code is contributed by phasing17`

## Javascript

 `// JavaScript program to implement the approach ` ` `  `// function to count the number of bits in a number n ` `function` `count_bits(n) ` `{ ` ` `  `  ``// toString(2) returns the binary string  ` `  ``// representation of the number n ` `  ``let binary = n.toString(2); ` `   `  `  ``// returning the length of the binary string ` `  ``return` `binary.length; ` `} ` ` `  `let a = 65; ` `let b = 183; ` ` `  `console.log(``"Total bits in"``, a, ``":"``, count_bits(a)); ` `console.log(``"Total bits in"``, b, ``":"``, count_bits(b)); ` ` `  `// This code is contributed by phasing17`

Output

```Total bits : 7
Total bits : 8```

Time Complexity : O(logn)

Auxiliary Space : O(1)

This article is contributed by Gyayak Jain. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

My Personal Notes arrow_drop_up