[Playlisten] [Impressum und Datenschutzerklärung]

05.03.2 automatische Umwandlungen bei Ganzzahlen


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

alsowar das imSeminar noch teilweise überraschend war wenn ich eine Variable habe einen Ansseinsin zum Beispielund ich weise die ??oderso eine monströse Zahl zu?? passt das natürlich nicht in den Anzeigen in dreienauf dieser Maschine hat er inssechzehn Bit Rechner auf dieser Maschine hatte im sechzehntesRaumder geht nicht bis hundert achtundzwanzig tausendwas passiert ist dass die überzähligenBits abgeschnitten werden es ist im Standard etwas anders formuliert aber im Endeffekt heißt es genau dasandie Bits die diese Zahl mehr hat als sechzehn werden abgeschnittenund was dann rauskommtist leider was ziemlich anderesObstist leider was ziemlich anderes als was sie erwartet hättenan das selbe passiert wenn sieeine Zahl an eine Funktion übergebenwenn sieklauen geblieben ??wenn wir so eine Funktion haben nennen wir siefreut sich F von aninXklammern?? was rein schaut mal in ?? ist gleichzweiundvierzigals Terminentdamit vielleichtsowenn Sie dieseZahl vielleicht sogar ganz vorsichtig als lang gebaut hättenund jetzt übergeben an die FunktionF von Hals solche die sogar damit richtig groß werden kann an sein Punkt machenwenn sie das veranstaltenan sie denselben Effektauf dem Weg in die Funktionhiermuss diese Zahl die Bass in den Landkreiskeine Aktiondiese Zahl muss auf dem Weg in die Funktion umgewandelt werden in an ein Zeit in zwotes passiert dasselbe wie eben hat es zu Fuß zugewiesen habe die überzähligen Bits werden abgeschnittendas heißt in dieser Funktion vom Blödsinn anKomma das anAlongist groß genug da passt der Wert wirklich reinwas einer Wiesemaschine zwei ?? dreißig mitDas heißt an sein Land geht bis vier Milliarden dass sie sind keine vier Milliarden das haut hin ich meine Funktion auf die Funktion wird aber ein Anzeichen ins die wir nur sechzehn Bit habenwir die Fusion reingehensehen Sie was als X angekommen istnicht das was ich reingesteckt habe dasselbe Phänomen wiederbeim zuweisen an zu kleine Variablenzu schmalen Variablensoll ihre ?? zu Wasser zu kleine Typengehen die vorderen Bits verlor bei ganzen Zahlen bei Einkommens aber normal gleich getrennt überreden aberhier wenn sie sowas machen wie lang ein ins zuweisen oder lang lang an Bank zuweisen und so weiterin die vorderen Bits verlorenVorsicht an der Stelle nicht darüber wundern dass es so eingebautundderCompiler gibt er sich meine Warnung der Compiler gibt uns nur die Warnung dass damitdeklariert wird aber niemals verwendet wirdder macht keinen Ärgerdas hier das lange A drin steht und zu einem integriert zwischendurchhabender Compiler könnte das auch an Mac anden neueren Sprachen wäre das sogar ganz verbotenwarendas an Punktund so nebenbei ein integriert wäre in Scharons sicher verboten das wäre so ein Fehlerfür diesenfür diesen muss ich sagen für diesen C-Compiler ist das nicht meine Warnung wird eine Stellewarenin diesem Sinne nochmals zweiweitere Sachen noch mal genauer ausgeführt vom letzten Malan Überraschungen bei den Rechenoperationendie erstes Überraschung ist das der Compiler?? alle an einer Rechenoperation beteiligtenTypenauf einen gemeinsamenTyp bringen muss er sich von ihr anfangen mit anzahlenan Saint KärcherA gleich siebenganzkleine Zahl mit acht Bit auf dieser Maschineeine dumme andere Zahlbin ich nun folgendes bildepaarmalB durch Beiner thematisch sollte folgendes basieren sieben mal hundertdurch hundertgibt wieder siebenAmpere sehr genau an Punkt was hier steht der steht ein direktermal eininswenn diese sie tatsächlich mit acht Bit ausgeführtwürdesieben mal hundert käme schon Blödsinn raus das Ergebnis hier von sieben hundert passt er nicht in acht Bit reinwas hier passiert das Essen auch im Standard so vorgesehen was hier passiert ist der Compiler sie wissen an sein Charakter unten in ?? und rechnete Sinn ins beidesauf dieGröße und das größere Format von beiden das Funktion tatsächlichobwohl ihr Zwischenergebnissieben hundert rauskommt und das in Charakter und an sein Charakter nicht mehr reinpassen würdedas wird mit dem größeren Typ ?? dass es allgemein so wenn sie zweiverschiedeneTypen haben ?? Plus mal geteiltwerdenund so weiter die ganzenüblichen Operationen haben werden beide Typen auf ein und denselben Typ gebrachtund zwar im Zweifelsfall gibt praktizierte Regeln dafür beim Zweifelsfallimmer auf der sicheren Seiteder Seite der Kälte wird auf jeden Fall zur Wind gemacht?? kleineren anderen Grund weshalb der Kälte auch Zement gemacht würdeKommadass sie wäreschon mal so die offizielle Denker des des Standardsalle werden auf ?? gebracht und dann kann ich die sieben hundert darstellendeEnde der geht bis zwanzig tausend noch was nach oben die sieben hundert gehtdas Make sieben hundertdurch sie heuteanwenn ich dasselbein etwas anderer Form noch mal hinschreibenjetzt etwas breiter wenn ich sage und gib mir mal einengenehmigte DNA lass ich mal Punkt in aller sich mal gib mir ein D und das soll ein bisschen mehr sein ?? sechzehn tausend das geht indes in noch reinin bis zwei dreißig tausend auf dieser Maschinejetzt rechtlich maläh ausdas soll sein paarmal die durch die?? daran sieht man das dann plötzlich irgendwoÄrger gibtnuneinmal die gibt nämlich jetzt siebzig tausend und das passt nicht mehr in die sechzehn Bit reinalso dieses hier in den schon mal in Thatcher wird als indischer gerechnet sechzehn Bitaber dieses Zwischenergebnissieben mal zehn tausend passt nicht mehr in den Entwicklersiebzig tausendRevier Kopfstimme Komma durch sieben Teile das Ding ist kaputtKomma sondern anessei nichts Besonderesund jetzt seht sie es tatsächlich sieben sieben mal hundert?? A ist ein an sein direkterB ist ein Kindals gemeinsame Typ wird wird in ?? gerechnetsieben hundert siebenhundert Pass in den interreindurch siebenBeistrich hundert sieben hundert ?? hundert wälzen und es kommt wieder sieben rauswie sein müsste mathematische jetzt mit den zehn tausendich rechne siebenmal zehn tausendins Mal insdas wird als in der ?? ausgerechnetsiebzig tausendpasst aber nicht in ein Interesse reinund deshalb kommt Blödsinn rausrechnehier etwasoder Siswoche spannende Frage Punkt ?? null rausalso genau Beistrich aber mal die genommen ?? Zwischenergebnis machenAhmadi als indischerNutzerund arbeite jetzt in der ?? ist unter zehn tausend?? und Witz abgeschnitten werden und wenn ich etwas unter zehn tausenddurch zehn tausend Teileganz eilig habe ich null raus deshalb kommt sie dann nur raus muss X anwas er denn wirklich ausgerichtet als das ProduktdenX tatsächlich ist unter zehn tausend kein etwas was unter zehn tausend ist durch den tausend dann kriegt sieeinfach nur rausdas ist der Grund dafürwarenalso Vorsicht bei solchen Rechenoperationdie üblichen Regeln sinddas der Compiler guckt was der größere der beiden Typen ist und alles mit diesem größeren Typ rechnet ?? es kann sein dass der größere Typ überläuft hier geht's noch sieben hundert Pass in den in dreiaber hiersiebzig tausend passt nicht in den intradie Lösung wäre eine von den beiden Variablen als lang zu machen wir das ganze Adlon gerechnet und dann passt es wiederumdas Vorführgesetzlichemal allzu langalso passierte sie es gewiss ist richtig was jetzt passiert es wird sieben mal zehn tausend gerechnetaber die zehn tausend ist ein ?? Punktdas heißt die Maschine bringt alles auf den Typ long rechnet sieben mal zehn tausend in neunundsiebzigtausend ein Problem verlangtvierzig tausenddurch zehn tausendmacht siebenund das Ergebnis passt dann wieder in ein Interviewaus diesem ganzen Kram hier kommt sieben raus und sieben ist überhaupt kein Problem in ein Interview zu speichern unddannkann sie beruhigen das sieht man nicht so häufigwarenso Ärger aber wenn man hinsieht sollte meine Idee haben das ?? passieren kann und sie können zwischendurch in solchen Rechenoperationenein Überlauf habenPunktundsollten deine Idee haben wo sie suchen müssen nach dem ProblemProblem kann sein dass die Typen die sie da rein stecken in diese Rechenoperationbreiter werden müssen um genug Luft zu habendanneine Art wie man diese Breite einstellen kann ist wenn sie Konstanten habenin so einer RechnungMittein seiner Rechnung einfach ?? die Konstante hundert ?? haben wir die Einfahrt in den schon genannteneinsickern sagen auch ich möchte die aber ausdrücklich?? damit Zwischenergebnissegenauer werdenich möchte das aber ausdrücklich als lang haben lieber mal die hundert nicht diese Maschinen sechzehn Witzen gibt mit ?? hundertmal auf dieser Schiene inzwei dreißig Bits oder Langland gibt ?? Maschine ergibt ?? immer diese Zahl auf dieser Maschine mal in vierundsechzig Bitdas dann auch mit Verdächtigen weitergerechnetwird ?? genau sagen ich hätte das gerneohne Vorzeichen ohne Vorzeichen lang ohne Vorzeichen doppelt langals wenn sie sich bitte solcheer Anhängsel sehen an die Konstanten nicht wundern das heißt einfach nurdie Zahl auch wenn siein sechzehn Bit reinpassen würde bitte doch bisschen länger nehmen damit die Zwischenergebnisserichtig gerechnet werden