Převodník z Dekadické do binární soustavy – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Převodník z Dekadické do binární soustavy – Python – Fórum – Programujte.comPřevodník z Dekadické do binární soustavy – Python – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Luk0
Newbie
13. 11. 2006   #1
-
0
-

Nedávno jsem se vážně začal věnovat pythonu a snažím se pro sebe vymyslet úkoly. Chtěl jsem si tedy udělat převodník z Dekadické do binární soustavy. U toho jsem ale narazil na 2 problémy.
1. Prvním problémem je, že se čísla berou po čtyřech, a já bych potřeboval zadaný text rozdělit, už po změněných 4 číslicých např:

x=11010101

y=[1101, 0101]


Jako první mě napadla funkce string.split, ale tam myslím nejde rozdělovat text podle počtu písmen. Jako další mě napadla dunkce list ale tam je situace skoro stejná, ale text se rozděli na jednotlivé písmena.

2.Problémem číslo 2 je, aby byl počet písmen dělitelný čtyřmi. Binární čísla se berou po čtveřicích zprava doleva, takže by to mohl Python napsat špatně. Mohl by udělat toto:

x=1011100

y=[1011, 100]


Místo toho, přidal na začátek celého řetězce nuly:

x=1011100

y=[0101, 1100]


Nemohli by jste mi někdo prosím pomoci?
Děkuji Skywall


Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
geon0
Grafoman
geon0
Grafoman
13. 11. 2006   #3
-
0
-

>>> int("1101",2)

13
>>> int("1101001110",2)
846
>>>


Já vím, je to pak nuda, když to jazyk všechno udělá za tebe, ale jako cvičení to nemusí být vůbec špatné ;-)

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
Jakub Vojáček
~ Moderátor
0
Grafoman
13. 11. 2006   #4
-
0
-

To geon:wow!!! tak funkci int sem znal ale tohle vylepšení!!! python mě neustále překvapuje :ms_0435:

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
Luk0
Newbie
13. 11. 2006   #5
-
0
-

Mám je jedna otázku. Proč je v té závorce za tím číslem dvojka? Jako že se jedná o dvojkovou soustavu?

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
13. 11. 2006   #6
-
0
-

jj, můžeš vybrat jakou soustavu chceš, dvojkovou, čtyřkovou atd...

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
geon0
Grafoman
13. 11. 2006   #7
-
0
-

Skywall píše:#
# Mám je jedna otázku. Proč je v té závorce za tím číslem dvojka? Jako že se jedná o dvojkouvou soustavu?


1/ dokumentace
2/ forum

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
geon0
Grafoman
14. 11. 2006   #8
-
0
-

Opravuji sám sebe ;-) :

1/ dokumentace
2/ google
3/ py.cz
4/ forum

;-)

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
Luk0
Newbie
15. 11. 2006   #9
-
0
-

Mám dojem, že to jak python převádí čísla není moc správné. Není špatně, ale do dekadické soustavy se počítají čísla od 0-9 a písmena! od A-G. Takže 1101 by nemělo být 13, ale písmeno E. Číslo 13 je sice taky správné, ale myslím že se to takhle nepíše.

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
15. 11. 2006   #10
-
0
-

dekadická je desítková, tedy 10 "číslic": 0,1,2,3,4,5,6,7,8,9
ty spíš myslíš hexa, tedy šestnáckovou, tedy 16 "číslic": 0,1,2,3,4,5,6,7,,8,9,A,B,C,D,E,F

a int převádí z jakékoliv soustavy do desítkové



>>> int ("A",16)
10
>>> int ("F",16)
15

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
Luk0
Newbie
26. 11. 2006   #11
-
0
-

Aha hexadecimální, už mi to došlo. Takže chci udělat převodník z binární do hexa. Takhle funkce to samozřejmě všechno nahradí, ale chtěl bych si to opravdu udělat, jako svůj první program. Znovu se teda ptám na otázky z prvního příspěvku.

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
27. 11. 2006   #12
-
0
-

algortimus (bez záruky = reklamace na lampárně na Hlavním nádraží v Praze ;-) )

x=str(110100)


# přidání potřebných počet nul
zbytek=zbytek po dělení 4
nuly(počet nul, které se mají doplnit) = 4-zbytek
přidat zleva k x potřebný počet nul
nyní by již mělo být dělitelné 4 beze zbytku

# rozsekání
seznam=[]
for i in range(0,len(x),4):
přidej do seznamu výřez z x od i do i+4

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
Luk0
Newbie
9. 12. 2006   #13
-
0
-

Sice to bude asi správné, ale nic z toho nechápu, asi s pythonem končím, není to nic pro mně. ?:-(

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 22 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý