Ahoj, potrebuji převést čísla že soustavy která je menší než 10tkova a pak z desitkove do libovolné která je též menší než 10tkova, jak na to prosím?
Fórum › C / C++
Převod mezi číselnými soustavami
Měl jsem dojem, že dnešní generace se "nemusí nic učit", protože až to bude potřebovat, všechno je na internetu. Jenže jak to tak vypadá, ona na to papomněla, nebo to tam neumí hledat!
Pokud to po tobě někdo chce ve škole, tak jsi už výuku číselných soustav a převodů mezi nimi absolvoval. Jestli jsi zrovna chyběl, tak se to douč...
Stejně tak jsi absolvoval výuku hledání na internetu.
Takže všechno už víš...
ach jej, a co takhle převodní funkce v knihovně ? jak je to v std netuším ale v QT je
QString QString::number(num,base)
a
objektQString.toInt(base) ... to double atp. !POZOR! u desetinných čísel vždy musí být číslo v 10 soustavě ...
Do baze 36 by to stacilo? :-P
#include <iostream>
#include <string>
#include <cassert>
namespace lol {
static const std::string digits("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");
template<typename T>
std::string to_string(T number, size_t base)
{
assert((base > 1) && (base <= digits.length()));
std::string s;
do {
s.insert(0, 1, digits[number % base]);
number /= base;
} while (number);
return s;
}
template<typename T>
T from_string(const std::string &s, size_t base)
{
assert((base > 1) && (base <= digits.length()));
T number = T();
for (auto c: s) {
number *= base;
size_t i = digits.find(c);
assert(i < digits.length());
number += i;
}
return number;
}
}
int main()
{
std::string number_s = "LOL";
unsigned long number = 996308594307;
size_t base = 36;
std::cout << number << " = "
<< lol::to_string(number, base)
<< '_' << base << '\n';
std::cout << number_s << '_' << base << " = "
<< lol::from_string<unsigned>(number_s, base)
<< '\n';
}
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Převod mezi číselnými soustavami — založil Hnusný_Slimák
Převody mezi číselnými soustavami - vlastni implemetace — založil cp.Hook
Chyba v kódu při převodu mezi číselnými soustavami — založil avalagne
Převod mezi soustavami — založil edor
Výstup v programu pro převod mezi soustavami — založil Mordor
Moderátoři diskuze