Názory ke článku Číselné soustavy
je to asi měsíc co jsme se to učili ve škole a učili nás to taky uplně jinak, a vychází to stejně :-D (pochopitelně) ale toto se mi zdá jednodušší, budu to muset ukázat profesorovi.
agon píše:
je to asi měsíc co jsme se to učili ve škole a učili nás to taky uplně jinak, a vychází to stejně :-D (pochopitelně) ale toto se mi zdá jednodušší, budu to muset ukázat profesorovi.
Tuším, že mluvíš o dvojkový soustavě...nás to ve škole taky učili tak nějak složitě, ale tohle asi, pravda, jednodušší ;o)
1. 11. 2007
To Nefaritus: ja to viem takto napr. pri cisle 173:
1 2 4 8 16 32 64 128
1 0 1 1 0 1 0 1
1+4+8+32+128 = 173
pri mensich cislach to je dostatocne rychle :)
pokud se nemýlím, tak binární číslo 1101101 není 91, nýbž 109, protože číslice, čím je víc vlevo, tím má vyšší hodnotu: 1*64 + 1*32 + 0*16 + 1*8 +1*4+ 0*2 + 1*1 = 109, pokud si to prevedes do hexa, tak prvni ctyri cislice (0110) jsou v hexa 6 a druhe ctyri (1101) jsou D, tedy 0x6D a to je 6*16 + 13*1 = 109
ovšem 8 se vejde do 18 dvakrát, tudíž 3. číslice bude 3 a po odečtení nám zbude 2
...
Výsledkem je tedy, že decimální číslo 594 je číslem 1 122 v oktalové soustavě.
8 se do 18 vejde dvakrat, tudiz 3. cislice bude 2 :) ve vysledku uz je to vsak spravne
mala otazecka:
proc dvojkouvou soustavu ukazujes delenim a ostatni mocninama? ma to byt jako prezentace obou zpusobu? V tom pripade bych se zminil, ze mocniny lze pouzit i na dvojkovou soustavu(po osvojeni si uvodnich mocnin do dejme tomu 256 je to mnoho nasobne rychlejsi) a rovnez, ze deleni lze pouzit i na ostatni soustavy, akorat se meni cislo, kterym se deli podle soustavy a zapisuje se vzdy odspoda/odzadu...
dale bych mozna clanek doplnil o prevod desetinych cisel
To insider: Jo jo...chtěl jsem ukázat to dělení alespoň na jednom příkladu a za ty chyby se omlouvám a napravím...
Já bych jen doplnil, pro absolutní začátečníky:
Pro člověka je přirozené počítat do deseti, protože má deset prstů. Matematici s oblibou říkají, že počítáme v desítkové soustavě. To znamená, že používám celkem deset cifer, od 0-9. Pokud dopočítáme k devítce, musíme si nějak vypomoci. A to uděláme tak, že že vezmeme jedničku a za ní dáme nulu, vznikne tedy číslo 10, které čteme jako deset.
A ted si představte ufony, co mají jen jednu ruku a na ni jeden prsty. Pro ně bude přirozené počítat ve dvojkkové soustavě. Tedy 2 cifry: 0 a 1. Pokud dopočítáme k jedničce, tedy nula - jedna, , musíme si nějak vypomoci. A to uděláme tak, že že vezmeme jedničku a za ní dáme nulu, vznikne tedy číslo 10, které čteme však jako jedna-nula, a vůbec to neznamená deset, ale v naší soustavě to zcela jasně odpovídá číslu 2. Pak následuje číslo 11, pak 100 (což připomínám rozhodně není našich sto, i když tak vypadá). A tak dál a dál.
Z historických a technických důvodů se ukázalo že bude výhodnější, když bude počítač nebo kalkulačka, mít jen jeden prst. Tedy že je lepší, aby si číslo 9 pamatovalo raději jako 1001, apod. Všechny výpočty uvnitře PC pak probíhají plně ve dvojkové soustavě - muselo se vymyslet, jak např. mezi sebou násobit, sečíst, odečíst dvě dvojková čísla, protože to se zřejmě dlá uplně jinak než jsme se učili ve 3 tříde. Potom různé převody z destítkové, mocniny, desetinná čísla, apod.
Jednička a nula se totiž velmi jednoduše technicky vyrábí. Jednička = napětí mezi dvěma body je, nula = mezi dvěma body není napětí žádné. Jak prosté ;-)
U ufonů s osmi či šestnácti prsty je to podobně. Matematika třeba v třináctkové soustavě je snad zábavná, alespon pro mne kdysi byla, ale asi nemá moc praktické uplatnění. K rozšiřování myšlenkových obzorů to je však super. Člověk se povznese nad obyčejnou destíkouvou soustavy, a přestane ji vnímat jako neměnou.
Tak snad to někomu pomůže.
To geon: Kdyby to nejaky korektor zkontoloval po gramatické stránce, rád bych to doplnil do článku (pod tvým jménem), aby to bylo víc na očích...co ty na to?
1. 11. 2007
To Nefaritus: ještě bych k tomuto doplnil, že šestnáctková soustava se v oblasti počítačů (adresování paměti...) používá nejspíše proto, že převod dvojková -> šestnáctková je Celkem jednoduchý a šestnáctka je mocnina dvojky, což s sebou nese také jisté výhody při přepočítávání.
z BIN do HEX se počítá tak, že si bin.číslice rozdělíme do čtveřic a z každé číslice výjde přesně jedna číslice hexadecimální.
1111100001101010000000 -> 0011 1110 0001 1010 1000 0000
0011 = 3
1110 = 14 = E
0001 = 1
1010 = 10 = A
1000 = 8
0000 = 0
binární 1111100001101010000000 = hexadecimální 3E1A80
opačně to funguje stejně, každá číslice hexadecimální odpovídá čtyřem jedničkám a nulám.
1. 11. 2007
...rozdělíme do čtveřic a z každé čtveřice výjde přesně jedna číslice hexadecimální. ...
To survik1: Písmena se nepřevádí na dvojkovou soustavu nějakými matematickými opracemi , ale tzv. převodními tabulkami. Jedné z nich se říká ASCII tabulka ;-) Třeba pímen A je číslo 97 v desítkové s., ve dvojkové 1100001.
To geon: No jo, ale jak pak poznám, jedná-li se o číslo nebo o písmeno?
To survik1: No jak to poznáš ty to nevím, ale komp to pozná zcela bezpečně. Ale jaké jsou přesné algoritmy, to nevím. MOžná prosté: bud program jednoduše očekává číslo, a pak s ním nakládá jako s číslem, nebo očekává písmeno, a pak s ním nakládá úplně jinak.
survik1 píše:
No jo, ale jak pak poznám, jedná-li se o číslo nebo o písmeno?
existuje totiž taková věc, která se jmenuje datové typy, pokud deklaruješ proměnnou jako int (integer), počítač si ji vysvetlí jako celé číslo, pokud deklaruješ char (character) bude chápána jako znak (písmno), pak existují další typy jako float a double pro práci s desetinnou čárkou
To ian: Takže když budu chtít jen-tak někam napsat větu ve dvojkový, tak mám napsat char 101 (etc.)?
Jinak, datové typy znám, ale díky za připomenutí ;)
survik1 píše:
To ian: Takže když budu chtít jen-tak někam napsat větu ve dvojkový, tak mám napsat char 101 (etc.)?
Jinak, datové typy znám, ale díky za připomenutí ;)
moc to nechápu, co znamená napsat jen tak někam? jaký máš důvod psát binárně věty?
To survik1: Pokud do toho zamícháš ještě ASCII znaky, tak to bude trochu jinak ... vždycky se budou převádět jednotlivý znaky. To znamená, že znak a (CHAR 97) bude správně převeden do binární soustavy jako 01100001, ale samotné číslo 97 se rozdělí na číslice 9 a 7, každá je pak převedena zvlášť a celé číslo po převodu bude 00111001 00110111.
Asi pro demonstraci napíšu jednoduchej prográmek, kterej bude převádět čísla i všechny ASCII znaky do binární soustavy a zpět.
Můžete mrknout na zdrojáky: http://www.dealer-software.qsh.cz/produkty/other/binaryconverter.zip.
To DeaLer: JSi si jistý, že číslo 97 se převádní do binární soustavy v pc po každé cifře zvlášť? Já bych řekl, že ne, že, že normálně: 97 = 1100001.
To DeaLer: jaj, ted mě napadlo, že jsi asi nemyslel číslo 97, ale řetězec "97" - pak je to ok. Mate to názvosloví - když říkáš "číslo" místo "řetězec, text", "číslice" místo "znak".
To geon: Pravda, nemělo by to být číslo/číslice, ale řetězec/znak, protože každý znak v řetězci má svou číselnou hodnotu (podle ASCII) a ta se pak převádí na binární. Tedy a (CHAR 97 = 01100001), 9 (CHAR 57 = 00111001) a 7 (CHAR 55 = 00110111). Sorry za nepřesnost.
4. 11. 2007
Neni náááhodou B(hex) = 11(dec) ??? takze ta dvanactka by mela bejt ve vysledku jako C!
To survik1: No ještě sem neviděl že by si někdo jen tak do paměti napsal binárně řetězec ale pokud je to ve zdrojovém kódu tak se o to musí postarat kompilátor. Jak přesně to nevím. :smile11:
27. 11. 2007
Ja tu dvojkovou soustavu nepochopil nák protože když furt budeme dělit dvěma tak se dostanem do 0.něco a furt vic desetinejch mist
To petr: i kdyby to tak bylo, tak je to jedno, protože 8.0000 = 8.0 ;-) Ale ono to tak není, protože zbytky (tedy jedničky a nuly) se sepisují odzadu dopředu, takže ty nuly se nakonec nepřidávají za číslo, ale před číslo (tedy zleva). A je to stejně jedno, protože 0008 = 08 = 8.
Napiš si zleva kolik chceš nul, furt je to stejné číslo. Takže můžeš nakonec nulu dělit dvojkou kolikrát chceš, číslo se již nezmění. Milion nul je furt nula, i když se říká, milionkrát nic umořilo i osla, nebo tak nějak ;-)
Doplnil bych takovou blbůstku: když v desítkové soustavě násobíme číslo deseti, přidáme nulu. A myslím, že to ve všech soustavách funguje stejně: když ve dvojkové soustavě číslo násobím dvěma, tak taky stačí přidat nulu :) Snad to někomu pomůže..
2. 11. 2008
000.111 => 2^(-1) + 2^(-2) + 2^(-3) => 1/2 + 1/4 + 1/8 => 0,5 + 0,25 + 0,125 = 0,875
(special thx to Marten Broadcloak)
2. 11. 2008
Nás to ve škole učili stejně,...dlouho dobu mi, ale vrtalo hlavou když chci z binární číslo převést do decimálního proč to musím počítat vlastně zprava do leva ...učitelka nám totiž nezdělila...nebo spíš můj mozek jak si nepochytil, že kdybych to chtěla počítat zleva do prava musela bych si uvědomit, že číslo nalevo je nejvyšší...>.<...stejěn je pro mě ale vyhodnější když to počítám zprava do leva, ptž začínám vlastně od 2^0 ...
25. 4. 2009
Nejsem si jistý jestli je to chyba, ale jak převádíš z désitkový soustavy do šestnáctkový, tak jak tam umocňuješ tu 16ku a dělíš to číslo mocninama 16ky, tak to vychází, ale když takhle chceš převést číslo, kde v šestnáctkový soustavě je někde 0, např. zkuste číslo 7947 převést z desítkový do šestnáctkový, vyjde to 1FB, ale ono to má vyjít 1F0B, 1FB je 507...
7947/4096 je 1 a 7947-4096=3851
3851/256 je 15 (F) a 3851-15*256=11
11=B, takže by to číslo mělo být 1FB, ta nula tam prostě chybí...
Reagoval na komentář od uživatele Panther :
me to v pohode vychazi 1F0B
udelal sem si na to i program... v pascalu ale opacne mi to nejak nejde
kdyby nekdo vedel jak na prevod cisel z Nejake soustavy do destikove tak pls napiste aspon jak na to
30. 10. 2010
Takhle jednoduše to převádí program
http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/
24. 11. 2010
To Panther :
Protože tu 11 jsi zapoměl dělit 16 :
7947/4096 je 1(1) a 7947-4096=3851
3851/256 je 15 (F) a 3851-15*256=11
11/256 je 0 (0) a 11-0*16=11
11/1 = 11 (B) a 11-11*1=0
24. 11. 2010
To Panther :
Protože tu 11 jsi zapoměl dělit 16 :
7947/4096 je 1(1) a 7947-4096=3851
3851/256 je 15 (F) a 3851-15*256=11
11/16 je 0 (0) a 11-0*16=11
11/1 = 11 (B) a 11-11*1=0
24. 11. 2010
V mém komentáři z 24. 11. 2010 23:24 je chyba, prosím smazat. Děkuji.
20. 1. 2014
Tohleto jsem nikdy nechápal, proč sakra desítková soustava podle toho, že máme deset prstů? Chci říct, proč ignorujeme poslední desátý prst?
Desítková soustava = 0 až 9
Ale když chci na rukou ukázat nulu, neukážu přece žádný prst! Potom postupujeme standardně od jednoho prstu pro znak "1" až po devět prstů pro znak "9"...a když použiju všech deset prstů??? Podle téhle logiky by tam měl být ještě jeden znak pro všech deset prstů! :-)
Může mi to někdo vysvětlit? Nebo je jediný argument, že v té LOGICKÉ matematice, je to prostě takhle nelogicky už zavedeno, a tak se to prostě používá. Dost chabý argument.