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