Kezdőlap › Fórumok › Programozás › C-fejlesztés, KDevelop, stb…
- This topic has 184 hozzászólás, 25 résztvevő, and was last updated 20 years, 9 months telt el by
admin.
-
SzerzőBejegyzés
-
2004-07-18-17:00 #1915683
Erre a system(char * s) függvény való, legalábbis a könyv szerint. Az stdlib.h-ban illene lennie, de nem próbáltam.
2004-07-18-17:21 #1915684Erre a system(char * s) függvény való, legalábbis a könyv szerint. Az stdlib.h-ban illene lennie, de nem próbáltam.
kösz. mindjárt kipróbálom.
kl2232004-08-06-20:03 #1915685Sziasztok!
Van 2 kérdésem:1.: Mi a leggyorsabb módja annak, hogy megnézzem egy számról, hogy egész-e (a proci terhelése szempontjából)
2.: Mennyivel lassabb az osztas, mint a szorzas?
Koszonom, es bocs az ekezetmentesitest, de kulfoldon vagyok, mas a bill.
Koszi elore is a valaszokat.2004-08-06-22:53 #19156861.: Mi a leggyorsabb módja annak, hogy megnézzem egy számról, hogy egész-e (a proci terhelése szempontjából)
Ha azt kérdezted, hogy futási idõben, akkor a kérdés nem helyes, mivel nem lehet eldönteni, ha nem futási idõben, akkor a válaszom nem tudom, de nem is érdekel, hiszen 2 perccel késõbb fordul le.
Mondok egy példát:
– van 32 bited, abba kell belepaszírozni egy számot vagy 0-2^32-ig vagy 0,0000-3,8e+38-ig.
– lebegõpontosnál van valamilyen jelzõbit (nem tudom, hogy van, nem érdekelt), ami „megmutatja”, hol van a tizedesvesszõ (minnél nagyobb a szám, annál kevesebb tizedesjegyet tartalmazhat, vagyis pontatlanabb lesz; vica versa)
– tegyük fel, hogy xxxxxxxxxxxxxxxxxxxxxxxxxxxxx111-es bináris kód azt jelenti, hogy 0,0000000000009 (most a hasamra ütöttem), ugyanakkor ugyanez 7-et jelent (most nem), ha egészként kezeljük, de egy négy karakteres stringként is kezelhetjük.Ez megy alacsony szinten pl assemblerben. (Ugyanezt a kezelésmódot a c nyelv is megengedi, de ott a fordító elraktározza a típust és minimum figyelmeztet rá, de ezt bizonyos assemblerek is megteszik.)
Ami megkülönbözteti ezeket, hogy milyen mûveletet végzünk rajta, Persze van olyan terület, mely sohasem lehet más típusú, mint amire számták: processzor regiszterek.2.: Mennyivel lassabb az osztas, mint a szorzas?
Pl a 2-vel ill. hatványaival osztás és szorzás egyforma ideig tart(hat), ha az ember jól írja meg a kódott és nem a multiplikálást, és osztást.
Ha egyébként a mul, és div assambler utasításokkal végeztetjük el, általában tovább tart:
mul 70-143 órajel ciklus, a div 0-162 órajel ciklus 32 bites Intel 8086-os processzorok esetén.
Tehát inkább úgy fogalmaznék, hogy nem helyes a kérdés.2004-08-07-09:56 #1915687Koszonom a kimerito valaszt.
Az 1-es probléma a valosagban a kovetkezo: van egy int a-m es egy int b-m.
Azt szeretnem megtudni, hogy a oszthato-e b-vel. Ennek a leggyorsabb modjara vagyok kivancsi. En ugy csinaltam, hogy ha a/b=x es x*b=a (x int), akkor oszthato, de ez eleg lassunak tunik. Ezert gondoltam esetleg arra, hogy rendesen elosztanam a-t b-vel, es megneznem, hogy a kapott eredmeny egesz-e. (ha x float, akkor 5/2=x eseten ugye x==2.5?)A 2. valszbol szamomra az derul ki, hogy nem nagysagrendekkel lassabb az osztas, erre voltam kivancsi, koszonom.
A jol megirt 2 hatvannyal valo szorzasra/osztasra igy gondoltal: a>=2 ?2004-08-07-10:27 #1915688Ha c-ben int számot osztasz int számmal, akkor az eredménye szerintem int lesz, ha csak nem írsz elõ típuskonverziót valahogy.
Azt, hogy osztható-e egy szám a másikkal meg úgy nézdd meg, hogy van-e az osztásnak maradéka.Code:maradek = a % b;Ha a maradek == 0, akkor osztható a b-vel maradék nélkül.
2004-08-07-11:38 #1915689” wrote:Koszonom a kimerito valaszt.
Az 1-es probléma a valosagban a kovetkezo: van egy int a-m es egy int b-m.
Azt szeretnem megtudni, hogy a oszthato-e b-vel. Ennek a leggyorsabb modjara vagyok kivancsi. En ugy csinaltam, hogy ha a/b=x es x*b=a (x int), akkor oszthato, de ez eleg lassunak tunik. Ezert gondoltam esetleg arra, hogy rendesen elosztanam a-t b-vel, es megneznem, hogy a kapott eredmeny egesz-e. (ha x float, akkor 5/2=x eseten ugye x==2.5?)
Az lehet a leggyorsabb amit Leslieman mondott: maradek = a % b;, mert feltûnõen hasonlít az assembleri formára. A maradékot a-t és b-t kezelje regiszterként, ha lehet. (16 bites a esetén -ha van szabad ax regiszter – ah = ax % al lesz.)A 2. valszbol szamomra az derul ki, hogy nem nagysagrendekkel lassabb az osztas, erre voltam kivancsi, koszonom.
A jol megirt 2 hatvannyal valo szorzasra/osztasra igy gondoltal: a>=2 ?
Megint azzal a kiegészítéssel, hogy a-t kezelje registerként(ha van szabad).Tehát legyen a meghatározott tárolási osztály ‘register’ ilyenkor viszont nem lehet globális a láthatósága, viszont nincsen garancia rá, hogy tényleg regiszter lesz, de a lehetõség fennáll és akkor a leggyorsabb mós lesz, a biztosat, csak az assembler jelent.
Ha tényleg érdekel a sebesség akkor:
http://nasm.sourceforge.net/
‘The Netwide Assembler’ linuxra, és winfosra is ingyenes.2004-08-07-14:12 #1915690Koszonom ujra a valaszokat. Az ASM-hez en meg tul kezdo vagyok, de idovel szeretnem kiprobalni..csak elobb menjen rendesen a C.
2004-08-07-19:32 #1915691Ujra egy kérdés 🙂
Code:1 for (i=1;i<10;i++)2 if (i==5)
3 <---visszalépni az elso sorba, hogy az megint novelje egy-el i-t---->
….
A kerdest sejtitek.
Persze meg legetne oldani ugy, hogy az egesz blokkot egy if utasitashoz kotom, de igy elegansabb, vagy nem?
i-t azert nem akarom manualisan novelni…na mind1, szal ugy bonyolult lenne, na 🙂2004-08-07-20:27 #1915692Hali!
Instrukciót szeretnék kérni, C++ v. Kdevelop-al való programfejlesztéshez!
Adatokat szeretnék egy elõre megformázott OpenOffice táblázatba beletenni programból és elmenteni más néven!
Merre kutakodjak v. esetleg tud valaki ebben a témában konkrétan segíteni?
Nagyon megköszönném!
( Ez lenne az utolsó lépés a cégnél ahol dolgozom az OpenOffice népszerûsítésére.)Elõre is nagyon köszönöm!
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz