unsigned int (C++) |
02.08.2009, 21:38 | earthie | Auf diesen Beitrag antworten » | |||||
unsigned int (C++) im Informatikerboard ist tote Hose, darum hier ne kleine Frage zu C++ : Was passiert beim Typ unsigned int bei Unterlauf, also: bool foo() { unsigned int a=2; unsigned int b=3; return (a-b<2); } wird der Typ von a-b automatisch nach int konvertiert oder geschieht der umgekehrte Effekt des Überlaufs (also die zahl wird sehr gross)? Irgendjemand von euch hat sicher schon was von C++ gehört Danke für die Hilfe! |
|||||||
02.08.2009, 21:43 | Duedi | Auf diesen Beitrag antworten » | |||||
Automatische Konvertierung in C++? Gibts sowas nicht nur in VBA? . Allerdings kann ich das nur vermuten, nicht begründen. |
|||||||
02.08.2009, 21:44 | Mathewolf | Auf diesen Beitrag antworten » | |||||
Soviel ich weiß, werden Typen in C++ nicht automatisch konvertiert. Verlässt das Ergebnis den Definitionsbereich des Typus, dann gibt der Compiler einen Error aus. Ansonsten Schreib eine kleine Testroutine und schau, was geschieht. ;-) |
|||||||
02.08.2009, 21:51 | Calvin | Auf diesen Beitrag antworten » | |||||
RE: unsigned int (C++)
Ungetestet gehe ich davon aus, dass das der Fall sein wird. Zumindest passiert das bei signed int-Zahlen. Hast du keine Möglichkeit, es zu testen? EDITh hat dazu was gefunden: http://de.wikibooks.org/wiki/C%2B%2B-Pro...ypen#Ganzzahlen |
|||||||
02.08.2009, 22:31 | Draos | Auf diesen Beitrag antworten » | |||||
RE: unsigned int (C++) Alles C++ wandelt, so recht ich mich erinnere, jedes Ergebnis einer int Rechnung zu erst in die größte ihn bekannte Ganzzahl um und konvertiert, dann oder presst es in die gewünschte Form. unsigned int heißt vorzeichenlos, er würde aber -1 rausbekommen, da er es nicht formatieren muss. Heißt es allerdings a-=b und würde er die -1 also das Maximum von unsigned int rauskommen. Liegt bei etwa Eben getestet: Es war fast so. Wenn ein großer Speichertyp mit einen kleineren in Verbindung gebracht wurde, dann wurde alles erst vom Typ des großen umgewandelt und dann notfalls, kompremiert. Bei deiner ist jedoch die Lösung. |
|||||||
02.08.2009, 22:32 | earthie | Auf diesen Beitrag antworten » | |||||
Jo, danke hab im Moment grad nicht die Möglichkeit das zu testen, gehe mal davon aus, dass es kein Standardverhalten gibt. |
|||||||
Anzeige | |||||||
|
|||||||
02.08.2009, 22:39 | Draos | Auf diesen Beitrag antworten » | |||||
RE: unsigned int (C++)
Ergab um genau zu sein 0 false |
|||||||
03.08.2009, 09:21 | earthie | Auf diesen Beitrag antworten » | |||||
Danke Draos. also dann gibts ne grosse Zahl, aber auf jeden Fall sollte man den Unterlauf vermeiden, da anscheinend kein Fehler ausgegeben wird Gruss |
|||||||
03.08.2009, 12:33 | Draos | Auf diesen Beitrag antworten » | |||||
Oder du machst folgendes: (long int-> 64-Bit Ganzahl)
Da kommt true raus, durch vorherige Formatierung |
|