C++ 十进制转换为二进制的实例代码

Laura ·
更新时间:2024-11-10
· 615 次阅读

题目内容:将十进制整数转换成二进制数。

输入描述:输入数据中含有不多于50个的整数n(-231<n<231)。

输出描述:对于每个n,以11位的宽度右对齐输入n值,然后输出“-->”,再然后输出二进制数。每个整数n的输出,独立占一行。

题目分析:将某个数从十进制转为二进制的具体方法是,该数对2取余,结果要么为1要么为0,此为该数对应二进制的末位;然后该数除以二,得到的商再次对2取余,结果为对应二进制的倒数第二位……以此类推,知道除以2的结果为0。

参考代码:

代码如下:
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
string s;
int main(int argc,char * argv[])
{
    int n;
    while(cin>>n)
    {
        if(n==0)
        {
                cout<<"          0-->0\n";
                continue;
        }
        s=" ";
        for(int a=n;a;a=a/2)
        {
                s=s+(a%2?'1':'0');
        }
        std::reverse(s.begin(),s.end());
        const char *sss=s.c_str();
        cout.width(11);
        cout<<n<<(n<0?"-->-":"-->")<<sss<<"\n";
    }
    system("pause");
    return 0;
}

效果如图:

您可能感兴趣的文章:c++10进制转换为任意2-16进制数字的实例2~62位任意进制转换方法(c++)C++ 基础编程之十进制转换为任意进制及操作符重载C++学习小结之二进制转换c++实现十进制转换成16进制示例C++面试题之进制转换的实例



进制转换 C++ 进制 十进制转换 二进制 c+ 十进制

需要 登录 后方可回复, 如果你还没有账号请 注册新账号