我是靠谱客的博主 英俊荷花,最近开发中收集的这篇文章主要介绍C++经典编程题目(八)二进制加法十进制输出,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


8. 输入两个正整数X,Y,将X,Y化为二进制数,然后将这两个二进制数作二进
制加法运算,再将结果化为十进制数输出。
#include <iostream>
#include <stdio.h>
#include <vector>
#include <math.h>
using namespace std;
vector<int> oct2bin(int input)
{
vector<int> retBin;
int temp = input;
while (temp)
{
retBin.push_back(temp%2);
temp = temp / 2;
}
return retBin;
}
int main()
{
int in1 = 0, in2 = 0, out = 0;
vector<int> bin1,bin2,outbin;
cout << "Please input num 1 :" << endl;
cin >> in1;
cout << "Please input num 2 :" << endl;
cin >> in2;
bin1 = oct2bin(in1);
bin2 = oct2bin(in2);
//plus
int i = 0;
int a = 0,b=0;
while (((i < bin1.size()) || (i < bin2.size())))
{
if ((i < bin1.size()) && (i < bin2.size()))
{
a = bin1[i] + bin2[i] + b;
}
else if (i >= bin1.size())
{
a = bin2[i] + b;
b = 0;
}
else if (i >= bin2.size())
{
a = bin1[i] + b;
b = 0;
}
if (a > 1)
{
a = 0;
b = 1;
}
else
{
b = 0;
}
outbin.push_back(a);
i++;
}
if (b == 1)
{
outbin.push_back(b);
}
for (size_t i = 0; i < outbin.size(); i++)
{
out = out + outbin[i] * pow(2, i); //求x的y次方;
}
cout << "Num 1 + Num 2 = " << out << endl;
system("pause");
return 0;
}

时间所限,程序写的非常浪费,不要学我。

最后

以上就是英俊荷花为你收集整理的C++经典编程题目(八)二进制加法十进制输出的全部内容,希望文章能够帮你解决C++经典编程题目(八)二进制加法十进制输出所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部