logo

Program do konwersji systemu dziesiętnego na binarny

Mając na wejściu liczbę dziesiętną, musimy napisać program, który przekonwertuje podaną liczbę dziesiętną na równoważną liczbę binarną.

wyrównywanie obrazów w CSS

Przykłady Dziesiętny na binarny :

  Input : 7 Output : 111 Input : 10 Output : 1010 Input: 33 Output: 100001>
Zalecana praktykaDziesiętny do binarnegoWypróbuj!

Podejście brutalnej siły

Na przykład :
Jeśli liczba dziesiętna wynosi 10.
Krok 1 : Reszta z dzielenia 10 przez 2 wynosi zero. Dlatego arr[0] = 0.
Krok 2 : Podziel 10 przez 2. Nowa liczba to 10/2 = 5.
Krok 3 : Reszta z dzielenia 5 przez 2 wynosi 1. Zatem arr[1] = 1.
Krok 4 : Podziel 5 przez 2. Nowa liczba to 5/2 = 2.
Krok 5 : Reszta z dzielenia 2 przez 2 wynosi zero. Dlatego arr[2] = 0.
Krok 6 : Podziel 2 przez 2. Nowa liczba to 2/2 = 1.
Krok 7 : Reszta z dzielenia 1 przez 2 wynosi 1. Zatem arr[3] = 1.
Krok 8 : Podziel 1 przez 2. Nowa liczba to 1/2 = 0.
Krok 9 : Ponieważ liczba staje się = 0. Wydrukuj tablicę w odwrotnej kolejności. Zatem równoważna liczba binarna to 1010.



Poniższy diagram pokazuje przykład konwersji liczby dziesiętnej 17 na równoważną liczbę binarną.

Dziesiętny na binarny




Poniżej realizacja powyższego pomysłu.

C++
// C++ program to convert a decimal // number to binary number #include  using namespace std; // function to convert decimal to binary void decToBinary(int n) {  // array to store binary number  int binaryNum[32];  // counter for binary array  int i = 0;  while (n>0) { // przechowywanie reszty w tablicy binarnej binaryNum[i] = n % 2;  n = n / 2;  ja++;  } // drukowanie tablicy binarnej w odwrotnej kolejności dla (int j = i - 1; j>= 0; j--) cout<< binaryNum[j]; } // Driver program to test above function int main() {  int n = 17;  decToBinary(n);  return 0; }>
C
// C Code to convert Decimal number into Binary #include  void decToBinary(int n) {  // array to store binary number  int binaryNum[32];    // counter for binary array  int i = 0;  while (n>0) { // przechowywanie reszty w tablicy binarnej binaryNum[i] = n % 2;  n = n / 2;  ja++;  } // drukowanie tablicy binarnej w odwrotnej kolejności for (int j = i - 1; j>= 0; j--) printf('%d', binaryNum[j]); } // Program sterownika do testowania powyższej funkcji int main() { int n = 17;  decToBinary(n);  zwróć 0; }>
Jawa
// Java program to convert a decimal // number to binary number import java.io.*; class GFG {  // function to convert decimal to binary  static void decToBinary(int n)  {  // array to store binary number  int[] binaryNum = new int[32];  // counter for binary array  int i = 0;  while (n>0) { // przechowywanie reszty w tablicy binarnej binaryNum[i] = n % 2;  n = n / 2;  ja++;  } // drukowanie tablicy binarnej w odwrotnej kolejności for (int j = i - 1; j>= 0; j--) System.out.print(binaryNum[j]);  } // program sterownika public static void main(String[] args) { int n = 17;  decToBinary(n);  } } // Autor: Pramod Kumar>
C#
// C# program to convert a decimal // number to binary number using System; public class GFG {  // function to convert decimal  // to binary  static void decToBinary(int n)  {  // array to store binary number  int[] binaryNum = new int[32];  // counter for binary array  int i = 0;  while (n>0) { // przechowywanie reszty w // tablicy binarnej binaryNum[i] = n % 2;  n = n / 2;  ja++;  } // drukowanie tablicy binarnej // w odwrotnej kolejności for (int j = i - 1; j>= 0; j--) Console.Write(binaryNum[j]);  } // Kod sterownika public static void Main() { int n = 17;  decToBinary(n);  } } // Ten kod został napisany przez Sam007.>
JavaScript
>
PHP
 // PHP program to convert a decimal // number to binary number // function to convert // decimal to binary function decToBinary($n) { // array to store // binary number $binaryNum; // counter for binary array $i = 0; while ($n>0) { // przechowywanie reszty // w tablicy binarnej $binaryNum[$i] = $n % 2; $n = (int)($n / 2); $i++; } // drukowanie tablicy binarnej // w odwrotnej kolejności dla ($j = $i - 1; $j>= 0; $j--) echo $binaryNum[$j]; } // Kod kierowcy $n = 17; decToBinary($n); // Ten kod pochodzi z m_kit ?>>
Python3
# Python3 program to convert a  # decimal number to binary number # function to convert # decimal to binary def decToBinary(n): # array to store # binary number binaryNum = [0] * n # counter for binary array i = 0; while (n>0): # zapisanie reszty # w tablicy binarnej binaryNum[i] = n % 2 n = int(n / 2) i += 1 # wydrukowanie tablicy binarnej # w odwrotnej kolejności dla j z zakresu(i - 1, -1, -1): print(binaryNum[j], end = '') # Kod sterownika n = 17 decToBinary(n) # Ten kod jest autorstwa mits>

Wyjście
10001>

Złożoność czasowa: O(zaloguj się) & przestrzeń pomocnicza: O(1)

Do wykonania powyższego zadania możemy użyć operatorów bitowych. Należy pamiętać, że operatory bitowe działają szybciej niż operatory arytmetyczne użyte powyżej.

C++
// CPP program to Decimal to binary conversion // using bitwise operator // Size of an integer is assumed to be 32 bits #include  using namespace std; // Function that convert Decimal to binary void decToBinary(int n) {  // Size of an integer is assumed to be 32 bits  for (int i = 31; i>= 0; i--) { int k = n>> i;  jeśli (k & 1) cout<< '1';  else  cout << '0';  } } // driver code int main() {  int n = 32;  decToBinary(n); }>
C
// C language to convert Decimal to binary number // using bitwise operator // Size of an integer is assumed to be 32 bits #include  // Function that convert Decimal to binary int decToBinary(int n) {  // Size of an integer is assumed to be 32 bits  for (int i = 31; i>= 0; i--) { int k = n>> i; // przesunięcie w prawo if (k & 1) // pomaga nam poznać stan pierwszego bitu printf('1');  inaczej printf('0');  } } // kod sterownika int main() { int n = 32;  decToBinary(n); }>
Jawa
// Java program to Decimal to binary conversion // using bitwise operator // Size of an integer is assumed to be 32 bits class gfg {  // Function that convert Decimal to binary  public void decToBinary(int n)  {  // Size of an integer is assumed to be 32 bits  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 { // kod sterownika public static void main(String[] args) { gfg g = new gfg();  int n = 32;  g.decToBinary(n);  } } // Ten kod został stworzony przez mits>
C#
// C# program to Decimal to binary conversion // using bitwise operator // Size of an integer is assumed to be 32 bits using System; class gfg {  // Function that convert Decimal to binary  public void decToBinary(int n)  {  // Size of an integer is assumed to be 32 bits  for (int i = 31; i>= 0; i--) { int k = n>> ja;  if ((k & 1)> 0) Console.Write('1');  else Console.Write('0');  } } } class geek { // kod sterownika public static int Main() { gfg g = new gfg();  int n = 32;  g.decToBinary(n);  zwróć 0;  } }>
JavaScript
>
PHP
 // PHP program to Decimal to binary conversion // using bitwise operator // Size of an integer is assumed  // to be 32 bits // Function that convert Decimal to binary function decToBinary($n) { // Size of an integer is // assumed to be 32 bits for ( $i = 31; $i>= 0; $i--) { $k = $n>> $i; if ($k & 1) echo '1'; w przeciwnym razie echo '0'; } } // Kod kierowcy $n = 32; decToBinary($n); // Ten kod został stworzony przez aj_36 ?>>
Python3
# Python3 program to Decimal # to binary conversion using # bitwise operator # Size of an integer is # assumed to be 32 bits # Function that convert # Decimal to binary def decToBinary(n): # Size of an integer is # assumed to be 32 bits for i in range(31, -1, -1): k = n>> i if (k & 1): print('1', end='') else: print('0', end='') # Kod sterownika n = 32 decToBinary(n ) # Ten kod został napisany przez mits>

Wyjście
00000000000000000000000000100000>

Złożoność czasowa: O(1)

pętla iteruje stałą (32) liczbę razy za każdym razem, nawet dla małej liczby



Przestrzeń pomocnicza: O(1)

Efektywne podejście

To kolejne skuteczne podejście do konwersji systemu dziesiętnego na binarny przy użyciu prawego przesunięcia (>>) i operatora And(&). Tutaj użyjemy tylko operatorów binarnych, które zwykle są bardzo szybkie w obliczeniach.

C++
#include  using namespace std; string DecimalToBinary(int num) {  string str;  while(num){  if(num & 1) // 1  str+='1';  else // 0  str+='0';  num>>=1; // Przesunięcie w prawo o 1 } return str; } void Reverse(string str) { for(int i=str.size()-1 ; i>=0 ; i--) cout<< str[i];  } int main() {  int num = 59;  cout<< 'Binary of num 59 is: ';  reverse( DecimalToBinary(num) );  return 0; }>
Jawa
// Java program to implement the // above approach import java.io.*; class GFG  {  // the converts decimal to binary base  static String DecimalToBinary(int num)  {  String str = '';  while (num>0) { if ((liczba i 1) == 1) // 1 str. += '1';  else // 0 str += '0';  liczba>>= 1; // Przesunięcie w prawo o 1 } return str;  } // odwróć ciąg static void Reverse(String str) { for (int i = str.length() - 1; i>= 0; i--) System.out.print(str.charAt(i));  } public static void main(String[] args) { int num = 59;  System.out.print('Binary liczby 59 to: ');  odwrotna(DecimalToBinary(liczba));  } } // Ten kod pochodzi z phasing17>
C#
// C# program to implement the // above approach using System; public class GFG {    // this converts decimal to binary base  public static string DecimalToBinary(int num)  {  string str = '';  while (num>0) { if ((liczba i 1) == 1) // 1 str. += '1';  else // 0 str += '0';  liczba>>= 1; // Przesunięcie w prawo o 1 } return str;  } // odwróć ciąg public static void Reverse(String str) { for (int i = str.Length - 1; i>= 0; i--) Console.Write(str[i]);  } // Kod sterownika public static void Main(string[] args) { int num = 59;  Console.Write('Binary liczby 59 to: ');  odwrotna(DecimalToBinary(liczba));  } } // ten kod został napisany przez phasing17>
JavaScript
>
Python3
# Python3 program to implement the above approach # function to convert the decimal number # to binary number def DecimalToBinary(num): strs = '' while num: # if (num & 1) = 1 if (num & 1): strs += '1' # if (num & 1) = 0 else: strs += '0' # right shift by 1 num>>= 1 return strs # funkcja odwracająca ciąg def Reverse(strs): print(strs[::-1]) # Kod sterownika num = 59 print('Binary liczby 59 to:', end=' ') Reverse(DecimalToBinary(num)) # Ten kod pochodzi z phasing17>

Wyjście
Binary of num 59 is: 111011>

Złożoność czasowa: O(log n) & przestrzeń pomocnicza: O(1)

Konwersję zapisu dziesiętnego na binarny można również wykonać bez użycia tablic.

C++
// C++ implementation of the approach #include  #include  using namespace std; #define ull unsigned long long int // Function to return the binary // equivalent of decimal value N int decimalToBinary(int N) {  // To store the binary number  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;  // Count used to store exponent value  cnt++;  }  return B_Number; } // Driver code int main() {  int N = 17;  cout << decimalToBinary(N);  return 0; } // This code is contributed by Sania Kumari Gupta (kriSania804)>
C
// C implementation of the approach #include  #include  #define ull unsigned long long int // Function to return the binary // equivalent of decimal value N int decimalToBinary(int N) {  // To store the binary number  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;  // Count used to store exponent value  cnt++;  }  return B_Number; } // Driver code int main() {  int N = 17;  printf('%u', decimalToBinary(N));  return 0; } // This code is contributed by Sania Kumari Gupta (kriSania804)>
Jawa
// Java implementation of the approach  import java.io.*; class GFG  { // Function to return the binary  // equivalent of decimal value N  static int decimalToBinary(int N)  {   // To store the binary number   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;   // Count used to store exponent value   cnt++;   }   return B_Number;  }  // Driver code  public static void main (String[] args) {    int N = 17;   System.out.println (decimalToBinary(N));  } } // This code is contributed by ajit.>
C#
// C# implementation of the approach using System; class GFG {   // Function to return the binary  // equivalent of decimal value N  static int decimalToBinary(int N)  {   // To store the binary number   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;   // Count used to store exponent value   cnt++;   }   return B_Number;  }  // Driver code  static public void Main () {  int N = 17;   Console.Write(decimalToBinary(N));  } } // This code is contributed by Tushil.>
JavaScript
>
Python3
# Python3 implementation of the approach  # Function to return the binary  # equivalent of decimal value N  def decimalToBinary(N): # To store the binary number  B_Number = 0 cnt = 0 while (N != 0): rem = N % 2 c = pow(10, cnt) B_Number += rem * c N //= 2 # Count used to store exponent value  cnt += 1 return B_Number # Driver code  N = 17 print(decimalToBinary(N)) # This code is contributed by  # SHUBHAMSINGH10>

Wyjście
10001>

Złożoność czasowa: O(zaloguj się) & przestrzeń pomocnicza: O(1)

Należy zauważyć, że ta metoda jest podobna do tej, w której konwertujemy zapis binarny na dziesiętny, jak omówiono w tym artykule post .
Istnieje jeszcze inna metoda konwertująca dowolną liczbę dziesiętną na jej postać binarną. Pomysł jest taki, aby użyć bitset .

Poniżej implementacja powyższego podejścia.

C++
//C++ program to convert a decimal number //to its binary form. //including header file #include  using namespace std; //Function to convert a decimal number //to its binary form string decimalToBinary(int n) {  //finding the binary form of the number and   //converting it to string.   string s = bitset<64>(n).to_string();    //Znalezienie pierwszego wystąpienia '1' //aby usunąć zera wiodące.  const auto loc1 = s.find('1');    if(loc1 != string::npos) return s.substr(loc1);    zwróć '0'; } //Kod sterownika int main() { int n = 17;    //Wywołanie funkcji cout<< decimalToBinary(n);  return 0; } //This code is contributed by yashbeersingh42>
Jawa
// Java program to convert a decimal number to its binary // form import java.util.*; class DecimalToBinary {  // Function to convert a decimal number to its binary  // form  public static String decimalToBinary(int n)  {  // Finding the binary form of the number and  // converting it to a string  String s = Integer.toBinaryString(n);  // Finding the first occurrence of '1' to strip off  // the leading zeroes  int loc1 = s.indexOf('1');  if (loc1 != -1) {  return s.substring(loc1);  }  return '0';  }  // Driver code  public static void main(String[] args)  {  int n = 17;  // Function call  System.out.println(decimalToBinary(n));  } } // This code is contributed by phasing17>
C#
// C# program to convert a decimal number // to its binary form. using System; class HelloWorld {  // Function to convert a decimal number  // to its binary form  public static String decimalToBinary(int n)  {  // finding the binary form of the number and   //converting it to string.   String s = Convert.ToString(n, 2);  return s;  }  static void Main() {  int n = 17;  //Function call  Console.WriteLine(decimalToBinary(n));  } } // The code is contributed by Nidhi goel.>
JavaScript
// Javascript program to convert a decimal number // to its binary form. // Function to convert a decimal number // to its binary form function decimalToBinary( n) {  // finding the binary form of the number and   // converting it to string.   const s = n.toString(2);    return s; } // Driver Code let n = 17; // Function call console.log(decimalToBinary(n));  // This code is contributed by imruhrbf8.>
Python3
# Python program to convert a decimal number # to its binary form. # Function to convert a decimal number # to its binary form def decimalToBinary( n): # finding the binary form of the number and  # converting it to string.  s = bin(n)[2:] # Finding the first occurrence of '1' # to strip off the leading zeroes. # const auto loc1 = s.find('1') loc1 = s[s.index('1'):] return loc1 return '0' # Driver Code n = 17 # Function call print(decimalToBinary(n))>

Wyjście
10001>

Złożoność czasowa: O(zaloguj się) & przestrzeń pomocnicza: O(1)

Inne podejście

C++
// C++ program to convert Decimal to Binary Number #include  using namespace std; int main() {  // input number  int number = 15;  int n = (int)(log2(number));    // binary output  // using the inbuilt function  cout << 'the binary number is : '  << bitset<64>(liczba).to_string().substr(64 - n - 1); } // Ten kod został napisany przez phasing17>
Jawa
//To convert Decimal to Binary Number// import java.util.*;  public class Main{  public static void main(String [] args){  //input//  int number =15;    //output//  System.out.println('the binary number is : '+ Integer.toString(number,2));    //This code is written by ZEESHAN AHMAD//  }  }>
C#
// To convert Decimal to Binary Number// using System;  class GFG{  public static void Main(){  // input//  int number =15;    //output//  Console.WriteLine('the binary number is : '+ Convert.ToString(number, 2));  }  } // This code is contributed by code_hunt.>
JavaScript
// JavaScript program to convert Decimal to Binary Number // input number var number = 15; // binary output // using the inbuilt function console.log('the binary number is :', number.toString(2)); // This code is written by phasing17>
Python3
# Python3 program to convert Decimal to Binary Number # input number number = 15 # binary output # using the inbuilt function print('the binary number is :', bin(number)[2::]) # This code is written by phasing17>

Wyjście
the binary number is : 1111>

Złożoność czasowa: O(zaloguj się) & Przestrzeń pomocnicza: O(1)