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

Informatiker Board » Themengebiete » Technische Informatik » Zahlenüberlauf » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 4 Beiträge
Thomas

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.
NoIdea

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.
Thomas

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.
NoIdea Zahlenüberlauf

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.