Almacene el resto cuando el número se divide por 2 en una matriz.
Divide el número por 2
Repita los dos pasos anteriores hasta que el número sea mayor que cero.
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.
A continuación se muestra la implementación de la idea anterior.
C ++
#include <iostream>
usingnamespacestd;
voiddecToBinary(intn)
{
intbinaryNum[32];
inti = 0;
while(n > 0) {
binaryNum[i] = n % 2;
n = n / 2;
i++;
}
for(intj = i - 1; j >= 0; j--)
cout << binaryNum[j];
}
intmain()
{
intn = 17;
decToBinary(n);
return0;
}
Java
importjava.io.*;
classGFG {
staticvoiddecToBinary(intn)
{
int[] binaryNum = newint[32];
inti = 0;
while(n > 0) {
binaryNum[i] = n % 2;
n = n / 2;
i++;
}
for(intj = i - 1; j >= 0; j--)
System.out.print(binaryNum[j]);
}
publicstaticvoidmain(String[] args)
{
intn = 17;
decToBinary(n);
}
}
Python3
defdecToBinary(n):
binaryNum =[0] *n;
i =0;
while(n > 0):
binaryNum[i] =n %2;
n =int(n /2);
i +=1;
forj inrange(i -1, -1, -1):
print(binaryNum[j], end ="");
n =17;
decToBinary(n);
C#
usingSystem;
publicclassGFG {
staticvoiddecToBinary(intn)
{
int[] binaryNum = newint[32];
inti = 0;
while(n > 0) {
binaryNum[i] = n % 2;
n = n / 2;
i++;
}
for(intj = i - 1; j >= 0; j--)
Console.Write(binaryNum[j]);
}
publicstaticvoidMain()
{
intn = 17;
decToBinary(n);
}
}
PHP
<?php
functiondecToBinary($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>
functiondecToBinary(n)
{
let binaryNum = newArray(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>
usingnamespacestd;
intdecToBinary(intn)
{
for(inti = 31; i >= 0; i--) {
intk = n >> i;
if(k & 1)
cout << "1";
else
cout << "0";
}
}
intmain()
{
intn = 32;
decToBinary(n);
}
Java
classgfg {
publicvoiddecToBinary(intn)
{
for(inti = 31; i >= 0; i--) {
intk = n >> i;
if((k & 1) > 0)
System.out.print("1");
else
System.out.print("0");
}
}
}
classgeek {
publicstaticvoidmain(String[] args)
{
gfg g = newgfg();
intn = 32;
g.decToBinary(n);
}
}
Python3
defdecToBinary(n):
fori inrange(31, -1, -1):
k =n >> i;
if(k & 1):
print("1", end ="");
else:
print("0", end ="");
n =32;
decToBinary(n);
C#
usingSystem;
classgfg {
publicvoiddecToBinary(intn)
{
for(inti = 31; i >= 0; i--) {
intk = n >> i;
if((k & 1) > 0)
Console.Write("1");
else
Console.Write("0");
}
}
}
classgeek {
publicstaticintMain()
{
gfg g = newgfg();
intn = 32;
g.decToBinary(n);
return0;
}
}
PHP
<?php
functiondecToBinary($n)
{
for( $i= 31; $i>= 0; $i--)
{
$k= $n>> $i;
if($k& 1)
echo"1";
else
echo"0";
}
}
$n= 32;
decToBinary($n);
?>
Javascript
<script>
functiondecToBinary(n)
{
for(i = 31; i >= 0; i--) {
vark = n >> i;
if((k & 1) > 0)
document.write("1");
else
document.write("0");
}
}
varn = 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>
usingnamespacestd;
#define ull unsigned long long int
intdecimalToBinary(intN)
{
ull B_Number = 0;
intcnt = 0;
while(N != 0) {
intrem = N % 2;
ull c = pow(10, cnt);
B_Number += rem * c;
N /= 2;
cnt++;
}
returnB_Number;
}
intmain()
{
intN = 17;
cout << decimalToBinary(N);
return0;
}
Java
importjava.io.*;
classGFG
{
staticintdecimalToBinary(intN)
{
intB_Number = 0;
intcnt = 0;
while(N != 0)
{
intrem = N % 2;
doublec = Math.pow(10, cnt);
B_Number += rem * c;
N /= 2;
cnt++;
}
returnB_Number;
}
publicstaticvoidmain (String[] args)
{
intN = 17;
System.out.println (decimalToBinary(N));
}
}
Python3
defdecimalToBinary(N):
B_Number =0
cnt =0
while(N !=0):
rem =N %2
c =pow(10, cnt)
B_Number +=rem *c
N //=2
cnt +=1
returnB_Number
N =17
print(decimalToBinary(N))
C#
usingSystem;
classGFG
{
staticintdecimalToBinary(intN)
{
intB_Number = 0;
intcnt = 0;
while(N != 0)
{
intrem = N % 2;
intc = (int)Math.Pow(10, cnt);
B_Number += rem * c;
N /= 2;
cnt++;
}
returnB_Number;
}
staticpublicvoidMain ()
{
intN = 17;
Console.Write(decimalToBinary(N));
}
}
Javascript
<script>
functiondecimalToBinary(N)
{
varB_Number = 0;
varcnt = 0;
while(N != 0)
{
varrem = N % 2;
varc = Math.pow(10, cnt);
B_Number += rem * c;
N = parseInt(N/2);
cnt++;
}
returnB_Number;
}
varN = 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>
usingnamespacestd;
string decimalToBinary(intn)
{
string s = bitset<64> (n).to_string();
constautoloc1 = s.find('1');
if(loc1 != string::npos)
returns.substr(loc1);
return"0";
}
intmain()
{
intn = 17;
cout << decimalToBinary(n);
return0;
}
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.