Witam. Mam problem z zapisaniem liczby w postaci binarnej. Dla dodatnich jest wszystko ok. Problem zaczyna pojawiać się dla liczb ujemnych. Próbowałem zanegować tablicę, ale wychodzi mi liczba typu -1,-2,-1,-1,-2....itd. Oczywiście postać binarna ma składać się również z zer wiodących.
#include <iostream>
using namespace std;
void zamiana(int value)
{
int i = 0, tab[31];
for(int k=31;k>0;k--){
if (value < 0) {
value = value * (-1);
tab[i++] = value % 2;
value /= 2;
}
tab[i++] = value % 2;
value /= 2;
}
for (int j = i - 1; j >= 0; j--){
cout <<tab[j];
}
}
int main()
{
int value;
cin >> value;
zamiana(value);
}