Вопрос по С++

Вопрос по С++
Написал программу которая переводит натуральное сисло в двоичную систему, но при вводе числа большего или равного 512 скомпилированная прграмма вырубается, можете сказать в чем проблема.Мой карявый код ниже прошу не критиковать))))) я только-только начал изучать С++

#include
#include

using namespace std ;

int main()
{
int a ;
int b ;
int c = 0 ;
int t = 0 ;
int d[t] ;
cout < < "Enter your number: " ;
cin >> a ;
cout < < endl ; while( c == 0 )
{

b = a % 2 ;
d[t] = b ;
a = a/2 ;
t = t + 1 ;

if( a == 3 )
{
cout < < "The result is: 11" ;
t = t - 1 ;
for( int i = t ; i>=0 ; i-- )
{
cout < < d[t] ;
t = t - 1 ;

}

goto mark ;}

if ( a == 2 )
{

cout < < "The result is: 10" ;
t = t - 1 ;
for( int i = t ; i>=0 ; i-- )
{
cout < < d[t] ;
t = t - 1 ;

}

goto mark ;}

}
mark:

getch();
return 0 ;
}

  • "я только-только начал изучать С++ " - действительно что-то жуткое ;)

    #include
    using namespace std;
    int main(){
    unsigned long a; cin>>a;
    for(int i=0;i< 32;i++)
    cout< <((a&0x80000000)>>31),a< <=1;
    cin.get(); cin.get();}

  • #include
    #include
    using namespace std;

    int main() {
    unsigned a;
    cin >> a;
    cout < < bitset<32>(a).to_string();
    }

    Вариант для строкодрочеров)
    cout< (stoi(gets(new char[99]))).to_string();