Hi Guys

Ive searched the forum but havent found much on decimal to binary so i came up with my own algorithm. However im encountering a seg fault and dont know where the problem lies.

My algorithm to convert decimal to binary is:

get the number

find the highest power of 2

compare the number with highest power

if number greater the highest power print a 1

adjust the new number

adjust the new power

end when there is a zero.

Cheers

Code:void dec2bin( void ) { { int num; int highestpower=1; int i; printf( "Enter a decimal number: " ); scanf( "%d", &num ); for ( i=1; i<=num; i++ ) { if ( highestpower <= num ) highestpower = intpow( 2, i ); else if ( highestpower > num ) break; } while ( num != 0 ) { if ( num >= highestpower ) { putchar( '1' ); num = num - highestpower; highestpower = highestpower - intpow( 2, sqrt(highestpower)-1); } else { putchar( '0' ); highestpower = highestpower - intpow( 2, sqrt(highestpower)-1); } } } int intpow( int base, int power ) { if ( power == 0 ) return 1; else return base * intpow( base, power-1 ); }