Kezdőoldal » Számítástechnika » Programozás » Ha számokat adunk össze C++...

Ha számokat adunk össze C++ nyelven, akkor a kicsi és nagy számok összeadása között van különbség időben?

Figyelt kérdés

2012. aug. 31. 20:40
1 2 3
 11/23 A kérdező kommentje:

De az int is egy osztály nem? csak alapvető szintű.

Egy osztály műveletei is programozva vannak nem? Például egy double x, y=0; esetén az x+y meghívja a double::+ operátort, és én azt gondolnám, hogy abban van egy if arra az esetre, ha az egyik változó 0.

2012. szept. 2. 13:41
 12/23 anonim ***** válasza:
Az int nem osztály.
2012. szept. 2. 14:34
Hasznos számodra ez a válasz?
 13/23 iostream ***** válasza:
5%

Egyfelől nincsenek ilyen függvények, a beépített típusok nem osztályok. Próbálj meg leszármaztatni belőlük.

Másfelől ha lennének is, szerinted melyik a rövidebb:


int operator+(int a, int b)

{

if (a == 0)

return a;

if (b == 0)

return b;

return a + b;

}


vagy


int operator+(int a, int b)

{

return a + b;

}


No, és ez a különbség assembly szinten is megjelenik, a feltételvizsgálat nincs ingyen ám. Ráadásul ugye feltételes ugrást tesz bele, tehát szétcseszheti a pipelinet ha a proci rosszul tippelte meg a döntést.

2012. szept. 2. 15:45
Hasznos számodra ez a válasz?
 14/23 A kérdező kommentje:
és a doublenél is így van? ott azért jelentős különség lehet, nem? Pl szorozni 1-el?
2012. szept. 2. 20:12
 15/23 iostream ***** válasza:
0%
A processzornak még mindig csak egy utasítás. A szorzás, főleg a lebegőpontos persze tovább tart (pl mert a double általában 8 byte), de megvizsgálni valamit, és utána vagy szorozni vagy nem alapvetően nem gyorsabb. Mátrixoknál már megérhetné vizsgálni a speciális eseteket.
2012. szept. 2. 21:16
Hasznos számodra ez a válasz?
 16/23 A kérdező kommentje:
Alapvetően nem is csak a gyorsaság miatt furcsa számomra, hanem a biztonság miatt is, mert akkor gépfüggő, hogy az x+0 valóban 0-e?
2012. szept. 3. 08:44
 17/23 anonim ***** válasza:
X+0 az sosem volt 0. X+0 az X. Úgy látom, ezt mindenki szépen benézte :D:D
2012. szept. 3. 19:11
Hasznos számodra ez a válasz?
 18/23 A kérdező kommentje:
jó, bocs, a lényeg ugyanaz :)
2012. szept. 4. 08:12
 19/23 iostream ***** válasza:
Nem, ezt csak a kérdező nézte be, de miután teljesen értetlen, és képtelen felfogni a válaszokat, mindenki hagyta a fenébe.
2012. szept. 4. 09:09
Hasznos számodra ez a válasz?
 20/23 anonim ***** válasza:

"int operator+(int a, int b)

{

if (a == 0)

return a;

if (b == 0)

return b;"


Te is benézted, nem csak a kérdező :D

Na mind1, nem kötözködni akarok :D

Az viszont tény, hogy kérdező, pls ne akadékoskodj, ha már megérteni nem vagy képes, legalább hidd el, hogy nekünk van igazunk :D

2012. szept. 4. 21:24
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!