将十进制数转换为二进制数----不用数组,也不用函数,只用循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将十进制数转换为二进制数----不用数组,也不用函数,只用循环相关的知识,希望对你有一定的参考价值。

输入一个正整数(十进制),输出此整数对应的二进制数(用循环实现,但不用数组,也不用函数调用)

/*
输入一个正整数(十进制),输出此整数对应的二进制数(用循环实现,但不用数组)

分析:十进制转换成二进制的方式:
      用辗转相除依次取余,直到商为0,获取逆序的余数序列就是对应的二进制数
      用循环不用数组,因此,将按先得到的余数序列组成一个整数值,
      再逆序输出该整数值(从低位到高位输出),即获得二进制代码
*/

#include <iostream>
using namespace std;
int main()
{
    int n; //待转换的十进制正整数
    int m; //存每次转换得到的余数
    int sum=0;    //进制转换逆序值
    int count=0; //记录二进制位数
    int i;
    cout<<"请输入待转换的十进制正整数:";
    cin>>n;
    while(n<0)
    {
       cout<<"请重新输入待转换的十进制正整数:";
       cin>>n;
    }
    cout<<endl;
    cout<<"十进制"<<n<<"的二进制形式为:";
    if(n==0)
    {cout<<n<<endl;
     return 0;    
    }
    while(n!=0)   //辗转相除取余到商为0
    {
      m=n%2;   //获取对应此次的余数
      count++;  //二进制位数增1
      sum=sum*10+m;   //余数按先得到顺序组成一个整数,最后反序就是2进制数
      n=n/2;
    }
    for(i=count;i>0;i--)  //循环从低位到高位逆序输出sum各个位上的数
    { cout<<sum%10; 
      sum=sum/10;
    }
    cout<<endl;
    return 0;
}
        
    

技术分享

以上是关于将十进制数转换为二进制数----不用数组,也不用函数,只用循环的主要内容,如果未能解决你的问题,请参考以下文章

3. 从键盘上输入一个八进制数,利用指针将其转换为十进制数并输出 C语言 很急

51nod-1315合法整数集(数位)

(计算机组成原理)第二章数据的表示和运算-第一节:一文总结进制转换,妈妈再也不用担心我不会进制转换了

c++中如何将十进制数字换为ASLL码中的字母

怎么在Word或者Excel里面把十进制的数字转换成二进制或者十六进制?

BitArray类的使用--(转换二进制数的内部实现过程)