给定一个二进制数作为输入,我们需要编写一个程序,将给定的二进制数转换为等效的十进制数。
null
例如:
Input : 111Output : 7Input : 1010Output : 10Input: 100001Output: 33
其思想是从最右边的数字开始提取给定二进制数的数字,并保留一个变量dec_值。从二进制数中提取数字时,将数字与适当的基数(2的幂)相乘,并将其添加到变量dec_值中。最后,变量dec_值将存储所需的十进制数。 例如: 如果二进制数是111。 dec_值=1*(2^2)+1*(2^1)+1*(2^0)=7
下图说明了如何将(1010)转换为等效的十进制值:
以下是上述理念的实施情况:
C++
// C++ program to convert binary to decimal #include <iostream> using namespace std; // Function to convert binary to decimal int binaryToDecimal( int n) { int num = n; int dec_value = 0; // Initializing base value to 1, i.e 2^0 int base = 1; int temp = num; while (temp) { int last_digit = temp % 10; temp = temp / 10; dec_value += last_digit * base; base = base * 2; } return dec_value; } // Driver program to test above function int main() { int num = 10101001; cout << binaryToDecimal(num) << endl; } |
JAVA
// Java program to convert // binary to decimal // Function to convert // binary to decimal class GFG { static int binaryToDecimal( int n) { int num = n; int dec_value = 0 ; // Initializing base // value to 1, i.e 2^0 int base = 1 ; int temp = num; while (temp > 0 ) { int last_digit = temp % 10 ; temp = temp / 10 ; dec_value += last_digit * base; base = base * 2 ; } return dec_value; } // Driver Code public static void main(String[] args) { int num = 10101001 ; System.out.println(binaryToDecimal(num)); } } // This code is contributed by mits. |
Python3
# Python3 program to convert # binary to decimal # Function to convert # binary to decimal def binaryToDecimal(n): num = n; dec_value = 0 ; # Initializing base # value to 1, i.e 2 ^ 0 base = 1 ; temp = num; while (temp): last_digit = temp % 10 ; temp = int (temp / 10 ); dec_value + = last_digit * base; base = base * 2 ; return dec_value; # Driver Code num = 10101001 ; print (binaryToDecimal(num)); # This code is contributed by mits |
C#
// C# program to convert // binary to decimal // Function to convert // binary to decimal class GFG { public static int binaryToDecimal( int n) { int num = n; int dec_value = 0; // Initializing base1 // value to 1, i.e 2^0 int base1 = 1; int temp = num; while (temp > 0) { int last_digit = temp % 10; temp = temp / 10; dec_value += last_digit * base1; base1 = base1 * 2; } return dec_value; } // Driver Code public static void Main() { int num = 10101001; System.Console.Write(binaryToDecimal(num)); } } // This code is contributed by mits. |
PHP
<?php // PHP program to convert // binary to decimal // Function to convert // binary to decimal function binaryToDecimal( $n ) { $num = $n ; $dec_value = 0; // Initializing base value // to 1, i.e 2^0 $base = 1; $temp = $num ; while ( $temp ) { $last_digit = $temp % 10; $temp = $temp / 10; $dec_value += $last_digit * $base ; $base = $base *2; } return $dec_value ; } // Driver Code $num = 10101001; echo binaryToDecimal( $num ), "" ; // This code is contributed by ajit ?> |
Javascript
<script> // JavaScript program to convert binary to decimal // Function to convert binary to decimal function binaryToDecimal(n) { let num = n; let dec_value = 0; // Initializing base value to 1, i.e 2^0 let base = 1; let temp = num; while (temp) { let last_digit = temp % 10; temp = Math.floor(temp / 10); dec_value += last_digit * base; base = base * 2; } return dec_value; } // Driver program to test above function let num = 10101001; document.write(binaryToDecimal(num) + "<br>" ); // This code is contributed by Surbhi Tyagi </script> |
输出:
169
注: 该程序只适用于整数范围内的二进制数。如果你想处理长二进制数,比如20位或30位,你可以使用一个字符串变量来存储二进制数。
下面是一个类似的程序,它使用字符串变量而不是整数来存储二进制值:
C++
// C++ program to convert binary to decimal // when input is represented as binary string. #include <iostream> #include <string> using namespace std; // Function to convert binary to decimal int binaryToDecimal(string n) { string num = n; int dec_value = 0; // Initializing base value to 1, i.e 2^0 int base = 1; int len = num.length(); for ( int i = len - 1; i >= 0; i--) { if (num[i] == '1' ) dec_value += base; base = base * 2; } return dec_value; } // Driver program to test above function int main() { string num = "10101001" ; cout << binaryToDecimal(num) << endl; } |
JAVA
// Java program to convert binary to // decimal when input is represented // as binary string. import java.io.*; class GFG { // Function to convert binary to decimal static int binaryToDecimal(String n) { String num = n; int dec_value = 0 ; // Initializing base value to 1, // i.e 2^0 int base = 1 ; int len = num.length(); for ( int i = len - 1 ; i >= 0 ; i--) { if (num.charAt(i) == '1' ) dec_value += base; base = base * 2 ; } return dec_value; } // Driver program to test above function public static void main(String[] args) { String num = new String( "10101001" ); System.out.println(binaryToDecimal(num)); } } // This code is contribute by Prerna Saini |
Python3
# Python3 program to convert binary # to decimal when input is # represented as binary string. # Function to convert # binary to decimal def binaryToDecimal(n): num = n; dec_value = 0 ; # Initializing base # value to 1, i.e 2 ^ 0 base1 = 1 ; len1 = len (num); for i in range (len1 - 1 , - 1 , - 1 ): if (num[i] = = '1' ): dec_value + = base1; base1 = base1 * 2 ; return dec_value; # Driver Code num = "10101001" ; print (binaryToDecimal(num)); # This code is contributed by mits |
C#
// C# program to convert binary to // decimal when input is represented // as binary string. using System; class GFG { // Function to convert binary to decimal static int binaryToDecimal(String n) { String num = n; int dec_value = 0; // Initializing base value to 1, // i.e 2^0 int base1 = 1; int len = num.Length; for ( int i = len - 1; i >= 0; i--) { if (num[i] == '1' ) dec_value += base1; base1 = base1 * 2; } return dec_value; } // Driver Code public static void Main() { String num = "10101001" ; Console.WriteLine(binaryToDecimal(num)); } } // This code is contribute by mits |
PHP
<?php // PHP program to convert binary // to decimal when input is // represented as binary string. // Function to convert // binary to decimal function binaryToDecimal( $n ) { $num = $n ; $dec_value = 0; // Initializing base // value to 1, i.e 2^0 $base = 1; $len = strlen ( $num ); for ( $i = $len - 1; $i >= 0; $i --) { if ( $num [ $i ] == '1' ) $dec_value += $base ; $base = $base * 2; } return $dec_value ; } // Driver Code $num = "10101001" ; echo binaryToDecimal( $num ), "" ; // This code is contributed by aj_36 ?> |
Javascript
<script> // Javascript program to convert binary to decimal // when input is represented as binary string. // Function to convert binary to decimal function binaryToDecimal(n) { let num = n; let dec_value = 0; // Initializing base value to 1, i.e 2^0 let base = 1; let len = num.length; for (let i = len - 1; i >= 0; i--) { if (num[i] == '1' ) dec_value += base; base = base * 2; } return dec_value; } // Driver program to test above function let num = "10101001" ; document.write(binaryToDecimal(num) + "<br>" ); // This code is contributed by Mayank Tyagi </script> |
输出:
169
使用预定义函数:
C++
#include <iostream> using namespace std; int main() { char binaryNumber[] = "1001" ; cout << stoi(binaryNumber, 0, 2); return 0; } // This code is contributed by whysodarkbro |
C
#include <stdio.h> #include <math.h> #include <stdlib.h> int main() { char binaryNumber[] = "1001" ; int bin, dec = 0; bin = atoi (binaryNumber); for ( int i = 0; bin; i++, bin /= 10) if (bin % 10) dec += pow (2, i); printf ( "%d" , dec); return 0; } // This code is contributed by whysodarkbro |
JAVA
public class GFG { public static void main(String args[]) { String binaryNumber = "1001" ; System.out.println(Integer.parseInt(binaryNumber, 2 )); } } // This code is contributed // By Yash Kumar Arora |
Python3
n = input () # Convert n to base 2 s = int (n, 2 ) print (s) |
C#
using System; class GFG { public static void Main() { int value = 1001; Console.Write(Convert.ToInt32(value.ToString(), 2)); } } // This code is contributed by SoumikMondal |
Javascript
<script> var binaryNumber = "1001" ; document.write(parseInt(binaryNumber, 2)); // This code contributed by Princi Singh </script> |
输出:
9
本文由 严酷的阿加瓦尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END