Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string.h>
- #include <vector>
- unsigned long int base_6_to_10(const char* cadena) {
- int len = strlen(cadena) - 1;
- size_t mult = 1;
- unsigned long int valor = 0;
- for (; len >= 0; --len) {
- int actual = cadena[len] - '0';
- valor += actual * mult;
- mult *= 6;
- }
- return valor;
- }
- std::vector<char> base_10_to_any(unsigned long int valor, int base) {
- std::vector<char> result;
- while (valor >= 1) {
- int resto = valor % base;
- valor = valor / base;
- if (resto >= 0 && resto <= 9) {
- result.push_back(resto + '0');
- } else {
- result.push_back(resto - 10 + 'A');
- }
- }
- std::vector<char> real_result;
- for (int i = result.size() - 1; i >= 0; --i) {
- real_result.push_back(result[i]);
- }
- return real_result;
- }
- int main() {
- char num[100];
- std::cout << "Ingresar un numero en base 6: ";
- std::cin >> num;
- unsigned long int decimal = base_6_to_10(&num[0]);
- std::cout << decimal << std::endl;
- int base;
- std::cout << "Ingresar un numero en base 6: ";
- std::cin >> base;
- std::vector<char> en_base = base_10_to_any(decimal, base);
- std::vector<char>::iterator it = en_base.begin();
- while (it != en_base.end()) {
- std::cout << *it;
- ++it;
- }
- std::cout << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement