📜  不使用算术运算运算符的十进制到二进制转换

📅  最后修改于: 2021-04-24 21:41:07             🧑  作者: Mango

在不使用算术运算运算符的情况下,找到给定非负数n的二进制等效项。
例子:

Input : n = 10
Output : 1010

Input : n = 38
Output : 100110

请注意,以下算法/程序中的+用于串联目的。
算法:

decToBin(n)
    if n == 0
        return "0"
    Declare bin = ""
    Declare ch
    while n > 0
        if (n & 1) == 0
            ch = '0'
        else
            ch = '1'
        bin = ch + bin
        n = n >> 1
    return bin
C++
// C++ implementation of decimal to binary conversion
// without using arithmetic operators
#include 
 
using namespace std;
 
// function for decimal to binary conversion
// without using arithmetic operators
string decToBin(int n)
{
    if (n == 0)
        return "0";
     
    // to store the binary equivalent of decimal
    string bin = "";   
    while (n > 0)   
    {
        // to get the last binary digit of the number 'n'
        // and accumulate it at the beginning of 'bin'
        bin = ((n & 1) == 0 ? '0' : '1') + bin;
         
        // right shift 'n' by 1
        n >>= 1;
    }
     
    // required binary number
    return bin;
}
 
// Driver program to test above
int main()
{
    int n = 38;
    cout << decToBin(n);
    return 0;
}


Java
// Java implementation of decimal
// to binary conversion without
// using arithmetic operators
import java.io.*;
 
class GFG {
     
    // function for decimal to
    // binary conversion without
    // using arithmetic operators
    static String decToBin(int n)
    {
        if (n == 0)
            return "0";
     
        // to store the binary
        // equivalent of decimal
        String bin = "";
         
        while (n > 0)
        {
            // to get the last binary digit
            // of the number 'n' and accumulate
            // it at the beginning of 'bin'
            bin = ((n & 1) == 0 ? '0' : '1') + bin;
             
            // right shift 'n' by 1
            n >>= 1;
        }
         
        // required binary number
        return bin;
    }
 
    // Driver program to test above
    public static void main (String[] args) {
 
    int n = 38;
    System.out.println(decToBin(n));
    }
}
 
// This code is contributed by vt_m


Python3
# Python3 implementation of
# decimal to binary conversion
# without using arithmetic operators
 
# function for decimal to
# binary conversion without
# using arithmetic operators
def decToBin(n):
    if(n == 0):
        return "0";
         
    # to store the binary
    # equivalent of decimal
    bin = "";
     
    while (n > 0):
         
        # to get the last binary
        # digit of the number 'n'
        # and accumulate it at
        # the beginning of 'bin'
        if (n & 1 == 0):
            bin = '0' + bin;
        else:
            bin = '1' + bin;
         
        # right shift 'n' by 1
        n = n >> 1;
     
    # required binary number
    return bin;
 
# Driver Code
n = 38;
print(decToBin(n));
 
# This code is contributed
# by mits


C#
// C# implementation of decimal
// to binary conversion without
// using arithmetic operators
using System;
 
class GFG {
     
    // function for decimal to
    // binary conversion without
    // using arithmetic operators
    static String decToBin(int n)
    {
        if (n == 0)
            return "0";
 
        // to store the binary
        // equivalent of decimal
        String bin = "";
 
        while (n > 0) {
             
            // to get the last binary digit
            // of the number 'n' and accumulate
            // it at the beginning of 'bin'
            bin = ((n & 1) == 0 ? '0' : '1') + bin;
 
            // right shift 'n' by 1
            n >>= 1;
        }
 
        // required binary number
        return bin;
    }
 
    // Driver program to test above
    public static void Main()
    {
 
        int n = 38;
        Console.WriteLine(decToBin(n));
    }
}
 
// This code is contributed by Sam007


PHP
 0)
    {
        // to get the last binary
        // digit of the number 'n'
        // and accumulate it at
        // the beginning of 'bin'
        $bin = (($n & 1) == 0 ?
                          '0' : '1') . $bin;
         
        // right shift 'n' by 1
        $n >>= 1;
    }
     
    // required binary number
    return $bin;
}
 
// Driver Code
$n = 38;
echo decToBin($n);
 
// This code is contributed
// by mits
?>


Javascript


输出:

100110