[python] Počítání v jiných soustavách
Jakub Vojacek
jakohv na seznam.cz
Sobota Únor 3 07:48:07 CET 2007
From: "Michal Vyskocil" <michal.vyskocil na gmail.com>
Dne pátek 02 únor 2007 18:11 Jakub Vojacek napsal(a):
> Ahoj
>
> Jak byste řešili program, který by počítal například příklad 101*10 ve
> dvojkové soustavě? Výsledek by v tomto případě byl 10. Procházeli byste
> výrazema jednotlivá čísla převáděly do desítkové soustavy, použili funkci
> eval a nakonci zase převedli do binární? Nejde u funkce eval nastavit v
> jaké soustavě má počítat?
>
> Dík
Pokud vim, tak eval zadne takove nastaveni nema. Stejne jako C rozpoznava
hexadecimalni cisla (zacinaji na 0x)
oktalova (zacinaji na 0)
desitkova (ostatni)
Jinak je tento problem vcelku jednoduse resitelny standardnimi prostredky
Pythonu
int("1001111", 2) zajisti prevod cisla z binarniho tvaru na desitkovy. Ovsem
je nutne si napsat zpetny prevod.
--
best regards
Michal Vyskocil
Zpětný převod mám zajištěný už mám dávno. jde mi o to že ho nemůžu použít na
řetězec kde jsou 2 čísla (1010*10). Možnost by byla převádět jedno číslo po
druhém. Nejdřív bych tedy vzal číslo 1010, zjistil že jeho hodnota je 5 a
nahradil 1010 číslem 5. To stejný u ostatních čísel. Takže by miu vznikl
přiklad 5*2 a ten bych vypočítal funkcí eval, převedl zpet do dvojkové
sooustavy a mám výsledek. Ale to mi přijde trochu moc pracné, to hledání a
nahrazování čísel.:(
B
Další informace o konferenci Python