Program do konwersji systemu dziesiętnego na binarny

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ą.

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)



Najpopularniejsze Artykuły

Kategoria

Ciekawe Artykuły