посоветую
такой документ...
цитата из него:
Пример на C для перевода 18 в 7-ричную систему выглядит так: (корректно работает до основания 10, дальше появятся «цифры» :;<=>?@012 и т.д.)
void perevod( unsigned int num, unsigned int base )
{
#define LENGTH ( 8 * sizeof( unsigned int ) ) /* размер с запасом */
char str[ LENGTH + 1]; /* +1 для символа [[EOS]] */
char *pstr = str + LENGTH - 1; /* начинаем заполнять цифрами с конца */
str[ LENGTH ] = '\0'; /* добавляем EOS */
if( num == 0 ) *pstr = '0'; /* если цикл не будет крутиться */
else
do
{
*pstr-- = '0' + num % base; /* заполняем цифрами, сдвигаясь влево */
num /= base;
}
while( num > 0 );
printf( "%s\n", pstr + 1 ); /* печатаем, начиная с 1го ненулевого символа */
#undef LENGTH /* уже не нужно */
}
void main()
{
perevod( 18, 7 );
}
|
также приведены алгоритмы по перевода любых систем в десятеричную... Ваш вариант можно комбинировать... 256ричную в 10ричную а потом в двоичную...
