计算一个数字中的总位数

给定一个正数n,计算其中的总位。 例如:

null
Input : 13Output : 4Binary representation of 13 is 1101Input  : 183Output : 8Input  : 4096Output : 13

方法1(使用日志)

n中以2为底的log2(n)对数,它是指数,2被提升到这个指数,得到n个整数,我们在log(n)时间内在一个数字中加1 find total bit。

C++

// C++ program to find total bit in given number
#include <iostream>
#include <cmath>
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<<countBits(num)<< '' ;
return 0;
}
// This code is contributed by thedev05.


C

// C program to find total bit in given number
#include <stdio.h>
#include <math.h>
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" , 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

<?php
// PHP program to find total
// bit in given number
function countBits( $number )
{
// log function in base 2
// take only integer part
return (int)(log( $number ) /
log(2)) + 1;
}
// Driver Code
$num = 65;
echo (countBits( $num ));
// This code is contributed by Ajit.
?>


Javascript

<script>
// JavaScript program to find total bit in given number
function countBits(number) {
// log function in base 2
// take only integer part
return Math.floor(Math.log2(number)+1);
}
// Driven program
let num = 65;
document.write(countBits(num));
// This code is contributed by Surbhi Tyagi
</script>


输出

7

方法2(使用位遍历)

C

/* Function to get no of bits in binary
representation of positive integer */
#include <stdio.h>
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

<?php
// PHP Code to get no of bits in binary
// representation of positive integer
// Function to get no of bits in binary
// representation of positive integer
function countBits( $n )
{
$count = 0;
while ( $n )
{
$count ++;
$n >>= 1;
}
return $count ;
}
// Driver Code
$i = 65;
echo (countBits( $i ));
// This code is contributed by Ajit.
?>


Javascript

<script>
/* Function to get no of bits
in binary representation of
positive integer */
function countBits(n)
{
var count = 0;
while (n != 0)
{
count++;
n >>= 1;
}
return count;
}
// Driver Code
var i = 65;
document.write(countBits(i));
</script>


输出

7

方法3(使用从二进制到字符串的转换)

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


输出

Total bits : 7Total bits : 8

本文由 贾亚克·贾因 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享