Dado un número binario como string, encuentre su equivalente decimal.
Ejemplos:
Input : binary = "101" Output : 5 Input : binary = "1111" Output : 15
Hemos discutido la solución iterativa para convertir binario a decimal .
La idea es simple, agregamos el término actual y recurrimos para los términos restantes.
C++
// Recursive CPP program to convert binary // decimal #include<bits/stdc++.h> using namespace std; int toDecimal(string binary, int i=0) { // If we reached last character int n = binary.length(); if (i == n-1) return binary[i] - '0'; // Add current tern and recur for // remaining terms return ((binary[i] - '0') << (n-i-1)) + toDecimal(binary, i+1); } // Driver code int main() { string binary = "1010"; cout << toDecimal(binary) << endl; return 0; }
Java
// Recursive Java program to convert binary // decimal class GFG { static int toDecimal(String binary,int i) { // If we reached last character int n = binary.length(); if (i == n-1) return binary.charAt(i) - '0'; // Add current tern and recur for // remaining terms return ((binary.charAt(i) - '0') << (n-i-1)) + toDecimal(binary, i+1); } // Driver code public static void main(String []args) { String binary = "1010"; int i=0; System.out.println(toDecimal(binary,i)); } } // This code is contributed // by ihritik ( Hritik Raj)
Python3
# Recursive Python3 program to convert # binary decimal def toDecimal(binary, i = 0): # If we reached last character n = len(binary) if (i == n - 1) : return int(binary[i]) - 0 # Add current tern and recur for # remaining terms return (((int(binary[i]) - 0) << (n - i - 1)) + toDecimal(binary, i + 1)) # Driver code if __name__ == "__main__" : binary = "1010" print(toDecimal(binary)) # This code is contributed by Ryuga
C#
// Recursive C# program to convert binary // decimal using System; class GFG { static int toDecimal(string binary, int i=0) { // If we reached last character int n = binary.Length; if (i == n-1) return binary[i] - '0'; // Add current tern and recur for // remaining terms return ((binary[i] - '0') << (n-i-1)) + toDecimal(binary, i+1); } // Driver code public static void Main() { string binary = "1010"; Console.WriteLine(toDecimal(binary)); } } // This code is contributed // by ihritik ( Hritik Raj)
PHP
<?php // Recursive CPP program to convert // binary decimal function toDecimal($binary, $i = 0) { // If we reached last character $n = strlen($binary); if ($i == $n - 1) return ord($binary[$i]) - ord('0'); // Add current tern and recur for // remaining terms return ((ord($binary[$i]) - ord('0')) << ($n - $i - 1)) + toDecimal($binary, $i + 1); } // Driver code $binary = "1010"; echo toDecimal($binary) . "\n"; // This code is contributed by ita_c ?>
Javascript
<script> // Recursive JavaScript program to convert binary // decimal function toDecimal(binary,i) { // If we reached last character let n = binary.length; if (i == n-1) return binary[i] - '0'; // Add current tern and recur for // remaining terms return ((binary[i] - '0') << (n-i-1)) + toDecimal(binary, i+1); } // Driver code let binary = "1010"; let i=0; document.write(toDecimal(binary,i)); // This code is contributed by avanitrachhadiya2155 </script>
Producción:
10
Publicación traducida automáticamente
Artículo escrito por KelechiOgudu1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA