#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * sysconv( unsigned sysin, unsigned sysout, const char * in, char * out)
{
static char digits[ ] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
unsigned p, m;
char * end,* pos, tmp;
for ( * out= '0' , end= out+ 1 ;* in;++ in)
{
for ( pos
= out
; pos
< end
;* ( pos
++ ) = digits
[ m
- ( p
= m
/ sysout
) * sysout
] ) m
= ( strchr ( digits
, toupper ( * pos
) ) - digits
) * sysin
+ p
; while ( p) * ( end++ ) = digits[ m- ( p= ( m= p) / sysout) * sysout] ;
}
for ( * end= 0 , pos= out; pos< end; tmp=* ( -- end) ,* end=* pos,* ( pos++ ) = tmp) { }
return out;
}
int main( )
{
unsigned sysin, sysout;
static char in[ 1024 ] , out[ 36 * 1024 ] ;
for ( ;; )
{
printf ( "\r system wejsciowy: " ) ; printf ( "\r system wyjsciowy: " ) ; printf ( "\r liczba wejsciowa: " ) ; scanf ( " %1023s" , in
) ; // wypada jeszcze sprawdzić czy to poprawna liczba w systemie sysin ale to banał if ( 2 > sysin|| sysin> 36 || 2 > sysout|| sysout> 36 ) return 0 ;
printf ( "\r liczba wyjsciowa: %s\n \n " , sysconv
( sysin
, sysout
, in
, out
) ) ; }
}
I2luY2x1ZGUgPGN0eXBlLmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmNoYXIgKnN5c2NvbnYodW5zaWduZWQgc3lzaW4sdW5zaWduZWQgc3lzb3V0LGNvbnN0IGNoYXIgKmluLGNoYXIgKm91dCkKICB7CiAgIHN0YXRpYyBjaGFyIGRpZ2l0c1tdPSIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiOwogICB1bnNpZ25lZCBwLG07CiAgIGNoYXIgKmVuZCwqcG9zLHRtcDsKICAgZm9yKCpvdXQ9JzAnLGVuZD1vdXQrMTsqaW47KytpbikKICAgICB7CiAgICAgIHA9c3RyY2hyKGRpZ2l0cyx0b3VwcGVyKCppbikpLWRpZ2l0czsKICAgICAgZm9yKHBvcz1vdXQ7cG9zPGVuZDsqKHBvcysrKT1kaWdpdHNbbS0ocD1tL3N5c291dCkqc3lzb3V0XSkgbT0oc3RyY2hyKGRpZ2l0cyx0b3VwcGVyKCpwb3MpKS1kaWdpdHMpKnN5c2luK3A7CiAgICAgIHdoaWxlKHApICooZW5kKyspPWRpZ2l0c1ttLShwPShtPXApL3N5c291dCkqc3lzb3V0XTsKICAgICB9CiAgIGZvcigqZW5kPTAscG9zPW91dDtwb3M8ZW5kO3RtcD0qKC0tZW5kKSwqZW5kPSpwb3MsKihwb3MrKyk9dG1wKSB7fQogICByZXR1cm4gb3V0OwogIH0KCmludCBtYWluKCkKICB7CiAgIHVuc2lnbmVkIHN5c2luLHN5c291dDsKICAgc3RhdGljIGNoYXIgaW5bMTAyNF0sb3V0WzM2KjEwMjRdOwogICBmb3IoOzspCiAgICAgewogICAgICBwcmludGYoIlxyc3lzdGVtIHdlanNjaW93eTogIik7CiAgICAgIHNjYW5mKCIldSIsJnN5c2luKTsKICAgICAgcHJpbnRmKCJccnN5c3RlbSB3eWpzY2lvd3k6ICIpOwogICAgICBzY2FuZigiJXUiLCZzeXNvdXQpOwogICAgICBwcmludGYoIlxybGljemJhIHdlanNjaW93YTogIik7CiAgICAgIHNjYW5mKCIgJTEwMjNzIixpbik7IC8vIHd5cGFkYSBqZXN6Y3plIHNwcmF3ZHppxIcgY3p5IHRvIHBvcHJhd25hIGxpY3piYSB3IHN5c3RlbWllIHN5c2luIGFsZSB0byBiYW5hxYIKICAgICAgaWYoMj5zeXNpbnx8c3lzaW4+MzZ8fDI+c3lzb3V0fHxzeXNvdXQ+MzYpIHJldHVybiAwOwogICAgICBwcmludGYoIlxybGljemJhIHd5anNjaW93YTogJXNcblxuIixzeXNjb252KHN5c2luLHN5c291dCxpbixvdXQpKTsKICAgICB9CiAgfQ==