#include <iostream>
char TRANSFORM_NUMBER(int number) {
if (number > 9)
return char((65+number)-10);
else
return char(48+number);
}
std::string transformTo(int number, const int &value) {
if (number < 0 || value < 1 || value > 36)
return "ERROR";
std::string num;
while (number) {
num.insert(num.begin(), TRANSFORM_NUMBER(number % value));
number /= value;
}
return num;
}
/*
Maksymalna wartosc drugiego argumentu
to 36 ze względu na to, że nie ma sensu
używać znaków po 'Z'.
Jeżeli chcesz tworzyć np. system stó-dwódziestkowy(?)
to odblokuj to w funkcji, aczkolwiek znaki będą dziwne xd
*/
int main() {
std::cout << transformTo(70, 2) << std::endl; //konwertuj 70 na dwójkowy
std::cout << transformTo(70, 4) << std::endl; //konwertuj 70 na czwórkowy
std::cout << transformTo(70, 8) << std::endl; //konwertuj 70 na ósemkowy
std::cout << transformTo(70, 10) << std::endl;//konwertuj 70 na dziesiętny
std::cout << transformTo(70, 16) << std::endl;//konwertuj 70 na szesnastkowy
std::cin.get();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2hhciBUUkFOU0ZPUk1fTlVNQkVSKGludCBudW1iZXIpIHsKCWlmIChudW1iZXIgPiA5KQoJCXJldHVybiBjaGFyKCg2NStudW1iZXIpLTEwKTsKCWVsc2UKCQlyZXR1cm4gY2hhcig0OCtudW1iZXIpOwp9CgpzdGQ6OnN0cmluZyB0cmFuc2Zvcm1UbyhpbnQgbnVtYmVyLCBjb25zdCBpbnQgJnZhbHVlKSB7CglpZiAobnVtYmVyIDwgMCB8fCB2YWx1ZSA8IDEgfHwgdmFsdWUgPiAzNikKCQlyZXR1cm4gIkVSUk9SIjsKCglzdGQ6OnN0cmluZyBudW07Cgl3aGlsZSAobnVtYmVyKSB7CgkJbnVtLmluc2VydChudW0uYmVnaW4oKSwgVFJBTlNGT1JNX05VTUJFUihudW1iZXIgJSB2YWx1ZSkpOwoJCW51bWJlciAvPSB2YWx1ZTsKCX0KCXJldHVybiBudW07Cn0KLyoKTWFrc3ltYWxuYSB3YXJ0b3NjIGRydWdpZWdvIGFyZ3VtZW50dQp0byAzNiB6ZSB3emdsxJlkdSBuYSB0bywgxbxlIG5pZSBtYSBzZW5zdQp1xbx5d2HEhyB6bmFrw7N3IHBvICdaJy4KSmXFvGVsaSBjaGNlc3ogdHdvcnp5xIcgbnAuIHN5c3RlbSBzdMOzLWR3w7Nkemllc3Rrb3d5KD8pCnRvIG9kYmxva3VqIHRvIHcgZnVua2NqaSwgYWN6a29sd2llayB6bmFraSBixJlkxIUgZHppd25lIHhkCiovCgppbnQgbWFpbigpIHsKCXN0ZDo6Y291dCA8PCB0cmFuc2Zvcm1Ubyg3MCwgMikgPDwgc3RkOjplbmRsOyAvL2tvbndlcnR1aiA3MCBuYSBkd8Ozamtvd3kKCXN0ZDo6Y291dCA8PCB0cmFuc2Zvcm1Ubyg3MCwgNCkgPDwgc3RkOjplbmRsOyAvL2tvbndlcnR1aiA3MCBuYSBjenfDs3Jrb3d5CglzdGQ6OmNvdXQgPDwgdHJhbnNmb3JtVG8oNzAsIDgpIDw8IHN0ZDo6ZW5kbDsgLy9rb253ZXJ0dWogNzAgbmEgw7NzZW1rb3d5CglzdGQ6OmNvdXQgPDwgdHJhbnNmb3JtVG8oNzAsIDEwKSA8PCBzdGQ6OmVuZGw7Ly9rb253ZXJ0dWogNzAgbmEgZHppZXNpxJl0bnkKCXN0ZDo6Y291dCA8PCB0cmFuc2Zvcm1Ubyg3MCwgMTYpIDw8IHN0ZDo6ZW5kbDsvL2tvbndlcnR1aiA3MCBuYSBzemVzbmFzdGtvd3kKCglzdGQ6OmNpbi5nZXQoKTsKCXJldHVybiAwOwp9