Я работал над программой, которая преобразует числа в двоичные. Поскольку вы можете увидеть мою программу here, я написал так, чтобы она могла масштабироваться для больших чисел, а затем традиционный двоичный код, такой как 2 строки (16 бит) для чисел, больших 255. Однако для большего размера требуется длинный вместо int , но это, похоже, не играет хорошо, производя вывод, такой как this. Кто-нибудь может помочь мне изменить программу, чтобы использовать ее долго? Или потребовалось бы фундаментальное изменение кода вместо небольших изменений?Использование long и массивов в C++
#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