#include <iostream>
#include <cmath>
#include <string>
using namespace std;
int mpow( int a,int b) {
auto r= 1 ;
for ( auto i = 0 ; i< b; i++ ) {
r* = a;
}
return r;
}
string dec2nth( int k,int n) {
int j = log ( k+ 0.5 ) / log ( n) ;
j++ ;
auto z = 0 ;
string result = "" ;
for ( int i = j- 1 ; i>= 0 ; i-- ) {
z = 0 ;
while ( mpow( n,i) <= k) {
k - = mpow( n,i) ;
z++ ;
}
result + = to_string( z) ;
}
return result;
}
int nth2dec( string k,int n) {
auto j = k.length ( ) ;
auto result = 0 ;
for ( int i= j- 1 ; i>= 0 ; i-- ) {
result + = atoi ( k.substr ( j- 1 - i,1 ) .c_str ( ) ) * mpow( n,i) ;
}
return result;
}
string mth2nth( string k,int m,int n) {
int result1 = nth2dec( k,m) ; \
return dec2nth( result1,n) ;
}
string bin2hex( string k) {
int prom;
string res = "" ;
for ( int i = 0 ; i< ceil ( k.length ( ) / 4 ) ; i++ ) {
prom = nth2dec( k.substr ( 4 * i,4 ) ,2 ) ;
if ( prom < 10 ) {
res + = to_string( prom) ;
}
else {
res + = char ( 55 + prom) ;
}
}
return res;
}
string nth2hex( string k,int l) {
string res1 = mth2nth( k,l,2 ) ;
return bin2hex( res1) ;
}
string hex2nth( string k,int l) {
auto j = k.length ( ) ;
auto result = 0 ;
auto q = 0 ;
for ( int i= j- 1 ; i>= 0 ; i-- ) {
if ( r< 10 ) {
q = atoi ( k.substr ( j- 1 - i,1 ) .c_str ( ) ) ;
}
else {
q = ( int ) k.substr ( j- 1 - i,1 ) .c_str ( ) [ 0 ] - 55 ;
}
result + = atoi ( q) * mpow( 16 ,i) ;
}
return mth2nth( to_string( result) ,10 ,l) ;
}
int main( ) {
//cout << mth2nth("",2,8);
cout << hex2nth( "FFF" ,10 ) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbXBvdyhpbnQgYSxpbnQgYil7CglhdXRvIHI9MTsKCWZvciAoYXV0byBpID0gMDtpPGI7aSsrKXsKCQlyKj1hOwoJfQkKCXJldHVybiByOwp9CgpzdHJpbmcgZGVjMm50aChpbnQgayxpbnQgbil7CglpbnQgaiA9IGxvZyhrKzAuNSkvbG9nKG4pOwoJaisrOwoJYXV0byB6ID0gMDsKCXN0cmluZyByZXN1bHQgPSAiIjsKCWZvciAoaW50IGkgPSBqLTE7aT49MDtpLS0pewoJCXogPSAwOwoJCXdoaWxlKG1wb3cobixpKTw9ayl7CgkJCWsgLT0gbXBvdyhuLGkpOwoJCQl6Kys7CgkJfQoJCXJlc3VsdCArPSB0b19zdHJpbmcoeik7Cgl9CglyZXR1cm4gcmVzdWx0Owp9CmludCBudGgyZGVjKHN0cmluZyBrLGludCBuKXsKCWF1dG8gaiA9IGsubGVuZ3RoKCk7CglhdXRvIHJlc3VsdCA9IDA7Cglmb3IgKGludCBpPWotMTtpPj0wO2ktLSl7CgkJcmVzdWx0ICs9IGF0b2koay5zdWJzdHIoai0xLWksMSkuY19zdHIoKSkqbXBvdyhuLGkpOwoJfQoJcmV0dXJuIHJlc3VsdDsKfQoKc3RyaW5nIG10aDJudGgoc3RyaW5nIGssaW50IG0saW50IG4pewoJaW50IHJlc3VsdDEgPSBudGgyZGVjKGssbSk7XAoJcmV0dXJuIGRlYzJudGgocmVzdWx0MSxuKTsKfQpzdHJpbmcgYmluMmhleChzdHJpbmcgayl7CglpbnQgcHJvbTsKCXN0cmluZyByZXMgPSAiIjsKCWZvciAoaW50IGkgPSAwO2k8Y2VpbChrLmxlbmd0aCgpLzQpO2krKyl7CgkJcHJvbSA9IG50aDJkZWMoay5zdWJzdHIoNCppLDQpLDIpOwoJCWlmIChwcm9tIDwgMTApewoJCQlyZXMgKz0gdG9fc3RyaW5nKHByb20pOwoJCX0KCQllbHNlIHsKCQkJcmVzICs9IGNoYXIoNTUrcHJvbSk7CgkJfQoJfQoJcmV0dXJuIHJlczsKfQoKc3RyaW5nIG50aDJoZXgoc3RyaW5nIGssaW50IGwpewoJc3RyaW5nIHJlczEgPSBtdGgybnRoKGssbCwyKTsKCXJldHVybiBiaW4yaGV4KHJlczEpOwp9CgpzdHJpbmcgaGV4Mm50aChzdHJpbmcgayxpbnQgbCl7CglhdXRvIGogPSBrLmxlbmd0aCgpOwoJYXV0byByZXN1bHQgPSAwOwoJYXV0byBxID0gMDsKCWZvciAoaW50IGk9ai0xO2k+PTA7aS0tKXsKCQlpZiAocjwxMCl7CgkJCXEgPSBhdG9pKGsuc3Vic3RyKGotMS1pLDEpLmNfc3RyKCkpOwoJCX0KCQllbHNlIHsKCQkJcSA9IChpbnQpay5zdWJzdHIoai0xLWksMSkuY19zdHIoKVswXSAtIDU1OwoJCX0KCQlyZXN1bHQgKz0gYXRvaShxKSptcG93KDE2LGkpOwoJfQoJcmV0dXJuIG10aDJudGgodG9fc3RyaW5nKHJlc3VsdCksMTAsbCk7CQp9CgppbnQgbWFpbigpIHsKCS8vY291dCA8PCBtdGgybnRoKCIiLDIsOCk7Cgljb3V0IDw8IGhleDJudGgoIkZGRiIsMTApOwoJcmV0dXJuIDA7Cn0=
compilation info
prog.cpp: In function ‘std::string hex2nth(std::string, int)’:
prog.cpp:67:7: error: ‘r’ was not declared in this scope
if (r<10){
^
prog.cpp:73:19: error: invalid conversion from ‘int’ to ‘const char*’ [-fpermissive]
result += atoi(q)*mpow(16,i);
^
In file included from /usr/include/features.h:371:0,
from /usr/include/i386-linux-gnu/c++/4.8/bits/os_defines.h:39,
from /usr/include/i386-linux-gnu/c++/4.8/bits/c++config.h:426,
from /usr/include/c++/4.8/iostream:38,
from prog.cpp:1:
/usr/include/stdlib.h:278:1: error: initializing argument 1 of ‘int atoi(const char*)’ [-fpermissive]
__NTH (atoi (const char *__nptr))
^
stdout