Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Technische Informatik » Zahlenüberlauf » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Zahlenüberlauf
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
NoIdea
Grünschnabel


Dabei seit: 29.06.2009
Beiträge: 2

Zahlenüberlauf Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hi,
ich hab folgendes probllem. wenn ich in c++ signed short int x=100000 definiere und später einfach so ausgeben lasse bekomm ich -31072 raus, da x ja nur werte zwischen -32768<= x<=32767 annehmen kann.
nun weiß ich aber nicht wie man theoretisch auf diesen wert kommt. hab einfach das komplement gebildet und auch vom betrag her das ergebnis bekommen. ich versteh jedoch nicht, warum das vorzeichen negativ ist.
ich hoffe einer hat ne idee.
29.06.2009 17:29 NoIdea ist offline E-Mail an NoIdea senden Beiträge von NoIdea suchen Nehmen Sie NoIdea in Ihre Freundesliste auf
Thomas Thomas ist männlich
Administrator


Dabei seit: 06.09.2006
Beiträge: 68

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Wenn du x durchzählst, ist 32767+1 = -32768... dann zählst du von dort aus weiter bis 0 und dann weiter bis du wieder bei 32767 ankommst.. und bei 100.000 bist du dann bei -31072.
29.06.2009 18:41 Thomas ist offline E-Mail an Thomas senden Homepage von Thomas Beiträge von Thomas suchen Nehmen Sie Thomas in Ihre Freundesliste auf
NoIdea
Grünschnabel


Dabei seit: 29.06.2009
Beiträge: 2

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

also fange ich an von 0 aus zu gehen bis meine 100000 "aufgebraucht" sind. und wie mach ich das jetzt rechnerisch. die komplementbildung ist ja eigentlich nichts anderes nur das ich dabei irgendwie nicht auf das vorzeichen komme. das komplement kann zwar als negativer wert aufgefasst werden, aber wenn ich jetzt sowas wie unsigned short int hätte, dann gäbe es ja keine negative zahl und ich wüsste nicht was ich machen sollte.
29.06.2009 18:50 NoIdea ist offline E-Mail an NoIdea senden Beiträge von NoIdea suchen Nehmen Sie NoIdea in Ihre Freundesliste auf
Thomas Thomas ist männlich
Administrator


Dabei seit: 06.09.2006
Beiträge: 68

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Rechnerisch würde ich das ganze so machen (65536 = ein gesamter Durchlauf, 32768+1+32767 mal)

100000 - 2*65536 = -31072

Da Stopp im 2. Durchlauf.
30.06.2009 17:02 Thomas ist offline E-Mail an Thomas senden Homepage von Thomas Beiträge von Thomas suchen Nehmen Sie Thomas in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Technische Informatik » Zahlenüberlauf