给定数的二进制表示

写一个程序来打印给定数字的二进制表示。

null

资料来源: 微软访谈集3

方法1:迭代 对于任何数字,我们都可以通过将其与“2^i”(2升为i)按位求和来检查其“i”位是0(关)还是1(开)。

1) Let us take number 'NUM' and we want to check whether it's 0th bit is ON or OFF        bit = 2 ^ 0 (0th bit)    if  NUM & bit >= 1 means 0th bit is ON else 0th bit is OFF2) Similarly if we want to check whether 5th bit is ON or OFF        bit = 2 ^ 5 (5th bit)    if NUM & bit >= 1 means its 5th bit is ON else 5th bit is OFF.

让我们取无符号整数(32位),它由0-31位组成。要打印无符号整数的二进制表示形式,请从第31位开始,检查第31位是否为开或关,如果为开,则打印“1”,否则打印“0”。现在检查第30位是开还是关,如果它在打印“1”或打印“0”,对31到0的所有位执行此操作,最后我们将得到数字的二进制表示。

C++

// C++ Program for the binary
// representation of a given number
#include <bits/stdc++.h>
using namespace std;
void bin( long n)
{
long i;
cout << "0" ;
for (i = 1 << 30; i > 0; i = i / 2)
{
if ((n & i) != 0)
{
cout << "1" ;
}
else
{
cout << "0" ;
}
}
}
// Driver Code
int main( void )
{
bin(7);
cout << endl;
bin(4);
}
// This code is contributed by souravghosh0416


C

#include<stdio.h>
void bin(unsigned n)
{
unsigned i;
for (i = 1 << 31; i > 0; i = i / 2)
(n & i) ? printf ( "1" ) : printf ( "0" );
}
int main( void )
{
bin(7);
printf ( "" );
bin(4);
}


JAVA

public class GFG
{
static void bin( long n)
{
long i;
System.out.print( "0" );
for (i = 1 << 30 ; i > 0 ; i = i / 2 )
{
if ((n & i) != 0 )
{
System.out.print( "1" );
}
else
{
System.out.print( "0" );
}
}
}
// Driver code
public static void main(String[] args)
{
bin( 7 );
System.out.println();
bin( 4 );
}
}
// This code is contributed by divyesh072019.


Python3

def bin (n) :
i = 1 << 31
while (i > 0 ) :
if ((n & i) ! = 0 ) :
print ( "1" , end = "")
else :
print ( "0" , end = "")
i = i / / 2
bin ( 7 )
print ()
bin ( 4 )
# This code is contributed by divyeshrabadiya07.


C#

using System;
public class GFG{
static void bin( long n)
{
long i;
Console.Write( "0" );
for (i = 1 << 30; i > 0; i = i / 2)
{
if ((n & i) != 0)
{
Console.Write( "1" );
}
else
{
Console.Write( "0" );
}
}
}
// Driver code
static public void Main (){
bin(7);
Console.WriteLine();
bin(4);
}
}
// This code is contributed by avanitrachhadiya2155


Javascript

<script>
// JavaScript Program for the binary
// representation of a given number
function bin(n)
{
let i;
document.write( "0" );
for (i = 1 << 30; i > 0; i = Math.floor(i/2))
{
if ((n & i) != 0)
{
document.write( "1" );
}
else
{
document.write( "0" );
}
}
}
bin(7);
document.write( "<br>" );
bin(4);
// This code is contributed by rag2127
</script>


输出

0000000000000000000000000000011100000000000000000000000000000100

方法2:递归 下面是打印“NUM”二进制表示形式的递归方法。

step 1) if NUM > 1    a) push NUM on stack    b) recursively call function with 'NUM / 2'step 2)    a) pop NUM from stack, divide it by 2 and print it's remainder.

C++

// C++ Program for the binary
// representation of a given number
#include <bits/stdc++.h>
using namespace std;
void bin(unsigned n)
{
/* step 1 */
if (n > 1)
bin(n / 2);
/* step 2 */
cout << n % 2;
}
// Driver Code
int main( void )
{
bin(7);
cout << endl;
bin(4);
}
// This code is contributed
// by Akanksha Rai


C

// C Program for the binary
// representation of a given number
void bin(unsigned n)
{
/* step 1 */
if (n > 1)
bin(n / 2);
/* step 2 */
printf ( "%d" , n % 2);
}
// Driver Code
int main( void )
{
bin(7);
printf ( "" );
bin(4);
}


JAVA

// Java Program for the binary
// representation of a given number
class GFG {
static void bin( int n)
{
/* step 1 */
if (n > 1 )
bin(n / 2 );
/* step 2 */
System.out.print(n % 2 );
}
// Driver code
public static void main(String[] args)
{
bin( 7 );
System.out.println();
bin( 4 );
}
}
// This code is contributed
// by ChitraNayal


Python3

# Python3 Program for the binary
# representation of a given number
def bin (n):
if n > 1 :
bin (n / / 2 )
print (n % 2 , end = "")
# Driver Code
if __name__ = = "__main__" :
bin ( 7 )
print ()
bin ( 4 )
# This code is contributed by ANKITRAI1


C#

// C# Program for the binary
// representation of a given number
using System;
class GFG {
static void bin( int n)
{
// step 1
if (n > 1)
bin(n / 2);
// step 2
Console.Write(n % 2);
}
// Driver code
static public void Main()
{
bin(7);
Console.WriteLine();
bin(4);
}
}
// This code is contributed ajit


PHP

<?php
// PHP Program for the binary
// representation of a given number
function bin( $n )
{
/* step 1 */
if ( $n > 1)
bin( $n /2);
/* step 2 */
echo ( $n % 2);
}
// Driver code
bin(7);
echo ( "" );
bin(4);
// This code is contributed
// by Shivi_Aggarwal
?>


Javascript

<script>
// Javascript program for the binary
// representation of a given number
function bin(n)
{
// Step 1
if (n > 1)
bin(parseInt(n / 2, 10));
// Step 2
document.write(n % 2);
}
// Driver code
bin(7);
document.write( "</br>" );
bin(4);
// This code is contributed by divyeshrabadiya07
</script>


输出

111100

方法3:使用逐位运算符递归 下面给出了将十进制数转换为二进制表示的步骤:

step 1: Check n > 0step 2: Right shift the number by 1 bit and recursive function callstep 3: Print the bits of number

C++

// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
// Function to convert decimal
// to binary number
void bin(unsigned n)
{
if (n > 1)
bin(n >> 1);
printf ( "%d" , n & 1);
}
// Driver code
int main( void )
{
bin(131);
printf ( "" );
bin(3);
return 0;
}


JAVA

// Java implementation of the approach
class GFG {
// Function to convert decimal
// to binary number
static void bin(Integer n)
{
if (n > 1 )
bin(n >> 1 );
System.out.printf( "%d" , n & 1 );
}
// Driver code
public static void main(String[] args)
{
bin( 131 );
System.out.printf( "" );
bin( 3 );
}
}
/*This code is contributed by PrinciRaj1992*/


Python3

# Python 3 implementation of above approach
# Function to convert decimal to
# binary number
def bin (n):
if (n > 1 ):
bin (n >> 1 )
print (n & 1 , end = "")
# Driver code
bin ( 131 )
print ()
bin ( 3 )
# This code is contributed by PrinciRaj1992


C#

// C# implementation of above approach
using System;
public class GFG {
// Function to convert decimal
// to binary number
static void bin( int n)
{
if (n > 1)
bin(n >> 1);
Console.Write(n & 1);
}
// Driver code
public static void Main()
{
bin(131);
Console.WriteLine();
bin(3);
}
}
/*This code is contributed by PrinciRaj1992*/


PHP

<?php
// PHP implementation of the approach
// Function to convert decimal
// to binary number
function bin( $n )
{
if ( $n > 1)
bin( $n >>1);
echo ( $n & 1);
}
// Driver code
bin(131);
echo "" ;
bin(3);
// This code is contributed
// by Akanksha Rai


Javascript

<script>
// JavaScript implementation of the approach
// Function to convert decimal
// to binary number
function bin(n)
{
if (n > 1)
bin(n >> 1);
document.write(n & 1);
}
// Driver code
bin(131);
document.write( "<br>" );
bin(3);
// This code is contributed by Surbhi Tyagi.
</script>


输出

1000001111

方法4: 使用C++的Bitset

我们可以使用 C++的位集类 存储任何数字(正数和负数)的二进制表示。它为我们提供了灵活性,让我们能够拥有所需的位数,比如我们是否想要一个数字的8位表示形式的32位二进制表示形式。

在这篇gfg文章中可以找到使用比特集的完整指南 链接 .

C++

#include <bits/stdc++.h>
using namespace std;
int main()
{
int n = 5, m = -5;
bitset<8> b(n);
bitset<8> b1(m);
cout << "Binary of 5:" << b << endl;
cout << "Binary of -5:" << b1 << endl;
return 0;
}


Output:Binary of 5:00000101Binary of -5:11111011

方法5:内置Python库

Python3

def binary(num):
return int ( bin (num).split( '0b' )[ 1 ])
if __name__ = = "__main__" :
x = 10
binary_x = binary(x)
print (binary_x)
# This code is contributed by Rishika Gupta.


输出

1010

视频教程

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。 本文由 纳伦德拉·康拉尔卡 .

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