in

Programa de conversión de decimal a binario

gfg 200x200 min

Dado un número decimal como entrada, necesitamos escribir un programa para convertir el número decimal dado en un número binario equivalente.

Ejemplos:

 
Input : 7
Output : 111

Input : 10
Output : 1010

Input: 33
Output: 100001

Algoritmo:

  1. Almacene el resto cuando el número se divide por 2 en una matriz.
  2. Divide el número por 2
  3. Repita los dos pasos anteriores hasta que el número sea mayor que cero.
  4. Imprima la matriz en orden inverso ahora.

Por ejemplo:
Si el número binario es 10.
Paso 1: El resto cuando 10 se divide entre 2 es cero. Por lo tanto, arr[0] = 0.
Paso 2: Divida 10 entre 2. El nuevo número es 10/2 = 5.
Paso 3: El resto cuando 5 se divide entre 2 es 1. Por lo tanto, arr[1] = 1.
Paso 4: Divida 5 entre 2. El nuevo número es 5/2 = 2.
Paso 5: El resto cuando 2 se divide entre 2 es cero. Por lo tanto, arr[2] = 0.
Paso 6: Divida 2 entre 2. El nuevo número es 2/2 = 1.
Paso 7: El resto cuando 1 se divide entre 2 es 1. Por lo tanto, arr[3] = 1.
Paso 8: Divida 1 entre 2. El nuevo número es 1/2 = 0.
Paso 9: Dado que el número se convierte en = 0. Imprima la matriz en orden inverso. Por lo tanto, el número binario equivalente es 1010.

El siguiente diagrama muestra un ejemplo de conversión del número decimal 17 en un número binario equivalente.

decimal2binary

A continuación se muestra la implementación de la idea anterior.

C ++

#include <iostream>

using namespace std;

void decToBinary(int n)

{

    

    int binaryNum[32];

    

    int i = 0;

    while (n > 0) {

        

        binaryNum[i] = n % 2;

        n = n / 2;

        i++;

    }

    

    for (int j = i - 1; j >= 0; j--)

        cout << binaryNum[j];

}

int main()

{

    int n = 17;

    decToBinary(n);

    return 0;

}

Java

import java.io.*;

class GFG {

    

    static void decToBinary(int n)

    {

        

        int[] binaryNum = new int[32];

        

        int i = 0;

        while (n > 0) {

            

            binaryNum[i] = n % 2;

            n = n / 2;

            i++;

        }

        

        for (int j = i - 1; j >= 0; j--)

            System.out.print(binaryNum[j]);

    }

    

    public static void main(String[] args)

    {

        int n = 17;

        decToBinary(n);

    }

}

Python3

def decToBinary(n):

    

    

    

    binaryNum = [0] * n;

    

    i = 0;

    while (n > 0):

        

        

        binaryNum[i] = n % 2;

        n = int(n / 2);

        i += 1;

    

    

    for j in range(i - 1, -1, -1):

        print(binaryNum[j], end = "");

n = 17;

decToBinary(n);

C#

using System;

public class GFG {

    

    

    static void decToBinary(int n)

    {

        

        int[] binaryNum = new int[32];

        

        int i = 0;

        while (n > 0) {

            

            

            binaryNum[i] = n % 2;

            n = n / 2;

            i++;

        }

        

        

        for (int j = i - 1; j >= 0; j--)

            Console.Write(binaryNum[j]);

    }

    

    public static void Main()

    {

        int n = 17;

        decToBinary(n);

    }

}

PHP

<?php

function decToBinary($n)

{

    

    

    $binaryNum;

    

    $i = 0;

    while ($n > 0)

    {

        

        

        $binaryNum[$i] = $n % 2;

        $n = (int)($n / 2);

        $i++;

    }

    

    

    for ($j = $i - 1; $j >= 0; $j--)

        echo $binaryNum[$j];

}

$n = 17;

decToBinary($n);

?>

Javascript

<script>

function decToBinary(n)

{

    

    let binaryNum = new Array(32);

    

    let i = 0;

    while (n > 0) {

        

        binaryNum[i] = n % 2;

        n = Math.floor(n / 2);

        i++;

    }

    

    for (let j = i - 1; j >= 0; j--)

        document.write(binaryNum[j]);

}

    let n = 17;

    decToBinary(n);

    

</script>

Producción :

10001

Podemos usar operadores bit a bit para hacer el trabajo anterior. Tenga en cuenta que los operadores bit a bit funcionan más rápido que los operadores aritméticos utilizados anteriormente.

C ++

#include <iostream>

using namespace std;

int decToBinary(int n)

{

    

    for (int i = 31; i >= 0; i--) {

        int k = n >> i;

        if (k & 1)

            cout << "1";

        else

            cout << "0";

    }

}

int main()

{

    int n = 32;

    decToBinary(n);

}

Java

class gfg {

    

    public void decToBinary(int n)

    {

        

        for (int i = 31; i >= 0; i--) {

            int k = n >> i;

            if ((k & 1) > 0)

                System.out.print("1");

            else

                System.out.print("0");

        }

    }

}

class geek {

    

    public static void main(String[] args)

    {

        gfg g = new gfg();

        int n = 32;

        g.decToBinary(n);

    }

}

Python3

def decToBinary(n):

    

    

    

    for i in range(31, -1, -1):

        k = n >> i;

        if (k & 1):

            print("1", end = "");

        else:

            print("0", end = "");

n = 32;

decToBinary(n);

C#

using System;

class gfg {

    

    public void decToBinary(int n)

    {

        

        for (int i = 31; i >= 0; i--) {

            int k = n >> i;

            if ((k & 1) > 0)

                Console.Write("1");

            else

                Console.Write("0");

        }

    }

}

class geek {

    

    public static int Main()

    {

        gfg g = new gfg();

        int n = 32;

        g.decToBinary(n);

        return 0;

    }

}

PHP

<?php

function decToBinary($n)

{

    

    

    

    for ( $i = 31; $i >= 0; $i--)

    {

        $k = $n >> $i;

        if ($k & 1)

            echo "1";

        else

            echo "0";

    }

}

    

    $n = 32;

    decToBinary($n);

?>

Javascript

<script>

    

    function decToBinary(n)

    {

        

        for (i = 31; i >= 0; i--) {

            var k = n >> i;

            if ((k & 1) > 0)

                document.write("1");

            else

                document.write("0");

        }

    }

    

    var n = 32;

    decToBinary(n);

</script>

Producción :

00000000000000000000000000100000

Gracias a ajay0007 por sugerir la solución anterior.

La conversión de decimal a binario también se puede realizar sin utilizar matrices.

C ++

#include <cmath>

#include <iostream>

using namespace std;

#define ull unsigned long long int

int decimalToBinary(int N)

{

    

    ull B_Number = 0;

    int cnt = 0;

    while (N != 0) {

        int rem = N % 2;

        ull c = pow(10, cnt);

        B_Number += rem * c;

        N /= 2;

        

        cnt++;

    }

    return B_Number;

}

int main()

{

    int N = 17;

    cout << decimalToBinary(N);

    return 0;

}

Java

import java.io.*;

class GFG

{

static int decimalToBinary(int N)

{

    

    int B_Number = 0;

    int cnt = 0;

    while (N != 0)

    {

        int rem = N % 2;

        double c = Math.pow(10, cnt);

        B_Number += rem * c;

        N /= 2;

        

        cnt++;

    }

    return B_Number;

}

public static void main (String[] args)

{

    

    int N = 17;

    System.out.println (decimalToBinary(N));

}

}

Python3

def decimalToBinary(N):

    

    

    B_Number = 0

    cnt = 0

    while (N != 0):

        rem = N % 2

        c = pow(10, cnt)

        B_Number += rem * c

        N //= 2

        

        

        cnt += 1

    

    return B_Number

N = 17

print(decimalToBinary(N))

C#

using System;

class GFG

{

    

static int decimalToBinary(int N)

{

    

    int B_Number = 0;

    int cnt = 0;

    while (N != 0)

    {

        int rem = N % 2;

        int c = (int)Math.Pow(10, cnt);

        B_Number += rem * c;

        N /= 2;

        

        cnt++;

    }

    return B_Number;

}

static public void Main ()

{

    int N = 17;

    Console.Write(decimalToBinary(N));

}

}

Javascript

<script>

function decimalToBinary(N)

{

    

    var B_Number = 0;

    var cnt = 0;

    while (N != 0)

    {

        var rem = N % 2;

        var c = Math.pow(10, cnt);

        B_Number += rem * c;

        N = parseInt(N/2);

        

        cnt++;

    }

    return B_Number;

}

var N = 17;

document.write(decimalToBinary(N));

</script>

Producción :

10001

Tenga en cuenta que este método es similar al que convertimos binario a decimal como se discutió en esta publicación.
Existe otro método que convierte cualquier número decimal a su forma binaria. La idea es usar bitset.

A continuación se muestra la implementación del enfoque anterior.

C ++

#include <bits/stdc++.h>

using namespace std;

string decimalToBinary(int n)

{

    

    

    string s = bitset<64> (n).to_string();

    

    

    

    const auto loc1 = s.find('1');

    

    if(loc1 != string::npos)

        return s.substr(loc1);

    

    return "0";

}

int main()

{

    int n = 17;

    

    

    cout << decimalToBinary(n);

    return 0;

}

Producción :

10001

Este artículo es una contribución de Áspero Agarwal. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o envíe su artículo por correo electrónico a [email protected] Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

¡Atención lector! No dejes de aprender ahora. Practique el examen GATE mucho antes del examen real con los cuestionarios generales y por materia disponibles en Curso de la serie de pruebas GATE.

Aprende todo Conceptos de GATE CS con clases gratuitas en vivo en nuestro canal de youtube.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

apple touch icon@2

Regex para validar los formatos de fecha dd / mm / AAAA, dd-mm-AAAA, dd.mm.YYYY, dd mmm AAAA, dd-mmm-AAAA, dd / mmm / AAAA, dd.mmm.YYYY con soporte de año bisiesto

610px anorexia vs bulimia physical symptoms 2

Anorexia vs bulimia: diferencia y comparación