有个简单的c++问题,想请教各位高手

来源:百度知道 编辑:UC知道 时间:2024/06/07 03:15:45
我是想做把十进制(整数)转变为二进制的数,我觉得上面的代码应该可以的,但是不能得到二进制数的?不知道为什么?请高手指点一下

#include <iostream>
#include <vector>
using namespace std;
int main()
{
int chushu,tempchushu,n=1,count=0;
vector<int> temp;
cout<<"输入数据"<<endl;
cin>>chushu;
while(chushu!=1)
{
tempchushu=chushu;
while((tempchushu%(2*n))!=1 && (tempchushu%(2*n))!=0)
{
++n;
}
temp.push_back (tempchushu-2*n);
++count;
chushu=n;
}
for(int k=count-1;k>=0;--k)
cout<<"1"<<temp[k]<<' ';
}
我想知道我的算法哪里错了,请详细的指出,作为学习

//你的程序问题很多我把你的程序改了一下.
#include <iostream>
#include <vector>
using namespace std;
void main() {
int chushu,count=0;
vector<int> temp;
cout<<"输入十进制数据"<<endl;
cin>>chushu;
while(chushu!=0) {
temp.push_back(chushu & 1);//将数和1做与运算,取得最低位的二进制数
chushu>>=1;//右移一位
++count;
}
cout<<"转换后的二进制数为:"<<endl;
for(int k=count-1;k>=0;--k)
cout<<temp[k]<<' ';
cout<<endl;
}

算法本身有错误。

#include<iostream>
using namespace std;

int main()
{
int IntNumber;
int BinNumber[33];
int i=0;
while(IntNumber>0)
{
BinNumber[i++]=IntNumber%2;
IntNumber/=2
}
for(int j=i-1;j>=0;j--)
{
cout<<BinNumber[j];
}
cout<<endl;
return 0;