[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