我一直在研究一个将数字转换为二进制的程序。正如你可以看到我的程序here,我已经写了这样的话,它可以扩大数字,然后传统的二进制代码,比如2行(16位)的数字大于255。然而,更大的需要长而不是int ,但似乎表现不佳,产出如this。任何人都不介意帮我改变程序使用很长时间吗?或者是否需要对代码进行根本性更改而不是进行一些小修改?在C++中使用long和数组
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, char **argv)
{
int j=0;
int c=8;
long a = 1;
int i=1;
cin >> a;
while (a >= (pow(2,c))) {
c = c+8;
i++;
}
long block[i*8];
for (long tw;tw<(i*8);tw++)
{
block[tw] = 0;
}
j=((i*8)-1);
long b = 0;
while (j != -1)
{
if (b+(pow(2,j))<=a)
{
block[j]=1;
b=b+(pow(2,j));
}
j--;
}
long q=0;
cout << endl;
int y=1;
long z = 0;
for (y;y<=i;y++) {
for (z;z<8;z++) {
cout << block[z+q];
}
cout << endl;
z = 0;
q = q + (8*y);
}
}
只是好奇,女巫是你的第一个编程语言? – ruslik 2010-12-07 21:34:58