[Playlisten] [Impressum und Datenschutzerklärung]

05.03.1 Überlauf, Teilen durch Null


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

wasfür ein Unsinn kann ich jetzt mit den ganzzahligenTypen veranstaltendiese Geschichtemit dem Überlauffeuerfür die Zweierkomplementextrem wichtig dass Rechnungen der Zweierkomplementmit den negativen Zahlen funktioniertja ihre Hakenwenn ich hierwar mal die Zahl dreißig tausend habeund jetzt nehme ich zu der Zahl dreißig tausend ?? klein A steht noch mal dreißig tausend dazudenn für dich erhoffenwürde ich hoffen dass in Bnach ?? sechzig tausend stehenwas ist das Problemwie kann aber niemals sie sechzig tausend Speichen in ?? nur sechzehn BitVorzeichen behaftetgeht nur bis zwei dreißig tausend noch wasdie überstehenden Bits werden einfach abgeschnitten bei der Rechnung?? zur Marienglocke??als dreißig tausend Gedankenstrich dreißig tausendauf armund sie sind bis minus fünf tausend fünf hundert sechzehn dreißig alles andere als wir sie haben wolltendas ist extrem gefährlichsie kriegen mal eben so ein Überlaufnennt sich das dann in die Oberliga Promis abgeschnitten werdenals ?? ist das höchste wird jetzt Gesetz deshalb hätte die Zahl von negativErgebnis ist ziemlich blödsinnigaus menschlicher Sichtalso Vorsicht das wird verborgen wenn sie das bleibt verborgen wenn sein Überlauf stattfindet Overflow kriegen sie das erst mal nicht mitan?? für die ZweierkomplementRechnung muss das so sein sonst wahnsinnig an die funktionierenaber das kann ein ganz schön weißenein blödes Beispiel Komma dass man sehen kann ich Skript geschrieben?? an das beißen kanndass die positiven Zahlen die Firma die positiven Zahlen ins negative Umschlagendie folgende Schleifeso ganz??nichts Böses ahnend folgende Schleife eintippen Beistrich der eine Millionein Millionen zwei drei eins zwei dreiwarenPunkt Schleife eintippen könnenund es sollte der Schleife irgendwas passieren kann an was passieren sollte was dazwischen sodas sie doch ganz normal Außenschleifeeine Million mal durchführendas sollte das Ding jamal geradenebenbei machenlaufen??passiertlangsamerPunkt gerade sind sie mit der roten Hand anhaltenließ fünf tausendbis maximaltausend??mit den andiesem ?? siebzehn tausendwas passiertwird diese eine Million Jahr reichen erzählt bis zu seinem Maximum wie auf der Maschine sitzen sechzehn Bit mit Vorzeichendes heißt DZ bis zweiunddreißig tausend noch wasund ?? addierte eins zu hundert vierzig minus zweiunddreißig tausend noch was und wenn dann bei minus zwei dreißig tausend wieder an bis zwanzig tausend noch was ein dazudieses Ding diese Schleife endet nie Vorsicht an der Stelle ?? dieseOverflowals automatischer Überlauf derignoriert wird der kann ein extrem weißen wundern Sie sich nicht über solche Effekte haben das immer im HinterkopfanPunkt einziger Überlauf wirdpraktischerweisenie angezeigtder schwarze Schaf kann man sich denKomma sich dass das einerWarnung geben lassen an der Stelleaber Jens sie ignoriert man ihn typischerweisegefährlich gefährlich Punkt einseine andere Geschichte die dieser Compiler zumindest ignoriert ist folgendesVisa Kind Ar gleich null und B ist gleichzweiundvierzigzwei vier dreißig Komma gen dreißig durch Adann findetdieser Compiler das soweit in Ordnungund Recht auch noch Komma vierunddreißig durch null und minus eins rausVorsichtauch das ?? Problem zu sein das ich was verbotenes tut und dass ich Mittagüblicherweisedas ist ein unwürdiges Verhaltenüblicherweisebricht das Programm an der Stelle ab als wenn sie dasselbe hier machen mitVisual ssie plus pluswarimmer den normalen Windows Compilerkriegen schon Programmabsturzmit der Fehlermeldung?? wurde durch nur geteilt Pech gehabt eine für heutean dieser Stellescheint's also dieserdieser Compiler ?? etwasfreundlicher oder toleranter zu sein ?? locker durch null teilen und in der minus eins rausals je nachdem welchen Compiler sie habendas Ärger beim Teil durch Null oder keinTeil null