C++ 中二进制到十进制转换程序
输入一个二进制数之后,任务是将给定的二进制数转换成十进制数。
计算机中的十进制数以 10 为底,而二进制数则以 2 为底,因为它只有两个二进制数字 0 和 1,而十进制数可以是从 0 到 9 的任何数字。
要将二进制数转换为十进制数,我们要从右向左提取数字通过余数,然后从 0 开始乘以 2 的次方,并且直到 (数字数) – 1 时增加 1,同时将乘积值相加以得到最终十进制数。
下面是将二进制数转换成十进制数的图片表示。
示例
Input-: 1010 0 will be converted to a decimal number by -: 0 X 2^0 = 0 1 have corresponding binary equivalent of 3 digit -: 1 X 2^1 = 2 0 have corresponding binary equivalent of 3 digit -: 0 X 2^2 = 0 1 have corresponding binary equivalent of 3 digit -: 1 X 2^3 = 8 Output-: total = 0 + 2 + 0 + 8 = 10
算法
Start Step1-> Declare function to convert binary to decimal int convert(string str) set string n = str set int val = 0 set int temp = 1 set int len = n.length() Loop For int i = len - 1 i >= 0 i— IF n[i] == '1' Set val += temp End Set temp = temp * 2 End return val Step 2-> In main() Set string val = "11101" Call convert(val) Stop
示例
#include <iostream> #include <string> using namespace std; //convert binary to decimal int convert(string str) { string n = str; int val = 0; int temp = 1; int len = n.length(); for (int i = len - 1; i >= 0; i--) { if (n[i] == '1') val += temp; temp = temp * 2; } return val; } int main() { string val = "11101"; cout<<val<<" after converion into deciaml : "<<convert(val); }
输出
如果我们运行上面的代码,它将生成以下输出:
11101 after converion into deciaml : 29
广告