# 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 1001

Input  : 183
Output : 8

Input  : 4096
Output : 13
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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; ` `    ``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

 ` `

Output:

```7
```

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. ` `?> `

Output:

```7
```

This article is contributed by Gyayak Jain. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

My Personal Notes arrow_drop_up

Article Tags :
Practice Tags :

1

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.