Muze me prosim nekdo nasmerovat na nejaky dokument na netu, ktery nejak jednoduse popisuje jak se ve dvojkove soustave pocita druha, treti, n-tá odmocnina? Nejsem matematik, jsem sice programator, ale az tak brutalni matematiku zase tak casto nepotrebuji a kdyz uz, tak programuju v nejakem jazyce, kde na to funkce uz jsou, ze jo :), tzn spise nez ultra slozite vzorecky by me k pochopeni pomohl nejaky obrazek jak se tam s tema bitama šachuje. Druha mocnina, to bych jeste pochopil, x . x = x^2 proste nasobeni .. ale odmocnina? To musi byt docela hukot v binarni soustave. Nedokazu si to predstavit. Totez je u deleni. Jak se treba ve dvojkove soustave deli 7mi cele cislo ? Treba 255 DIV 7. 255 DIV 2 = 255 SHR 1 (bitovy posun doprava pokud jsou bity 76543210) ale trebas 7mi? Nebo 3ma? Tam uz jako bitovy posun asi ee .. Diky za tip, moc by me to zajimalo.
Nebylo by lepší si na to spíš založit forum? Nebo se prostě zeptat pana googla? Algoritmů je vícero, jak na odmocňování, tak na dělení, vhodnost konkrétního z nich závisí i na dostupných hardwarových prostředcích. Mezi tyto algoritmy patří i dělení a odmocňování tak, jak se to učí pomocí tužky a papíru, takže o žádnou brutální matematiku, hukot ani ultra složité vzorečky se obvykle nejedná.
Deleni v dvojkove soustave (pokud tim myslis integery) je vlastne velmi podobne nasobeni, resi se na te nejjednodussi urovni bitovymi posuny a odcitanim:
http://courses.cs.vt.edu/~cs1104/BuildingBlocks/divide.030.html
Obvodova realizace nasobicky a delicky vsak byva optimalizovana, takze ve skutecnosti napriklad nasobeni 32x32 netrva 32 taktu, ale o dost min.
Pri pouziti FP aritmetiky do toho jeste zasahuji exponenty, takze se (hodne to zjednodusim) nasobi/deli mantisy a scitaji/odcitaji exponenty, nakonec se vysledek znormalizuje (ve skutecnosti je to trosku slozitejsi, provadi se dalsi operace, aby se ztratilo co nejmene bitu z vysledku).
Ad odmocnina - opet nejjednodussim resenim je vypocet pomoci iterace: http://en.wikipedia.org/wiki/Babylonian_method#Babylonian_method
nekde jsem videl pekny algoritmus pro starou dobrou Intel 8080, kde se prvnich par bitu vysledku odhadlo a dopocital se pouze zbytek - zkusim to dohledat.
sin/cos/apod. - viz algoritmus CORDIC - http://www.root.cz/clanky/metoda-cordic-a-vypocet-funkci-tan-atan-a-length/
http://www.root.cz/clanky/vypocet-goniometrickych-funkci-algoritmem-cordic/
http://www.root.cz/clanky/algoritmus-cordic-v-fx-formatu-a-goniometricke-funkce/