作者sprinter (luckyman)
看板C_and_CPP
标题Re: [问题] 十进位转二进位
时间Sun Mar 22 18:45:01 2009
※ 引述《PuNkChild (脆欧德)》之铭言:
: 我写出来是反过来的
: 要怎麽样才可以把它从左到右显示
: #include <cstdlib>
: #include <iostream>
#include <cmath> //include math library
: using namespace std;
: int main(int argc, char *argv[])
: {
: int a,i;
int bits=0;//储存转成二进位要的bit数
int *digit; //暂存转换後的阵列
int count=0;
: cout<<"请输入一整数 : ";
: cin>>a;
//计算bit数
bits = (int)ceil(log2(a));
digit = new int[bits];
: while(i=a)
: {
: if(a%2==1) {cout<<1;
digit[count]=1;
}
: else {cout<<0;
digit[count]=0;
}
: i=a/2;
: a=i;
count++;
: }
count--; //减掉多的一次
//再印出来
for(int i=count;i>=0;i--){
cout << digit[i];
}
: system("PAUSE");
: return EXIT_SUCCESS;
: }
: 这是我写的
: 想了好久了 囧
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.175.153.148
1F:推 winkk:直接在while回圈内cout>>1和cout>>0对调即可 03/22 20:02