[Playlisten] [Impressum und Datenschutzerklärung]

05.01.1 Ganzzahlige Typen, Zweierkomplement


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

ichhabe schon zwei Typenverratenin C undC plus plus hat jede Variableeinen Typschon zwei Typen insfür ganze Zahlenund Poolfür Variablen die wahr oder falschspeichern können Tickets noch viel mehr Typen der vermeintlichen Hotelbarantun?? bevor ich damit starten sie aber erst erklären wir denn überhauptintern die Zahlen gespeichert werdenX Nummer eins wenn ich sechzehn Bit Zahlen habediese Maschine hier der MSP430arbeitet bevorzugt mit sechzehn bezahlenwerde seine sechzehn bezahl habenwas heißt das eigentlichman kann es ganzeinfach machen?? die sechzehn null hintereinanderpro ?? zu schreibenwenn alle von diesen sechzehn bis null sindwas soll das heißen dezimalfür unsmenschlicheBetrachter?? wahrscheinlich einfach null wenn alle Bits auf null sindallemwenn der lauter null stehen und das letzte Bild ist Gesetz soll das wohl eins heißenin der lauter Nullen stehen und am Ende steht null minus eins einssoll es ungefähr was heißen?? eigenerund so weiter und so fort wenn der lauter Einsen stehenKopfrechnendiesemKopf auch nichteins plus zwei plus vier plus achtundsechzigan es gibt einen Trick um das einfacher zu rechnen wenn sie eins draufaddierenwas für was passiert wenn sie da als zu dieser Binärzahl addierenalleszu Null undeine eins genau gegenüber ?? das es so als ob sie dezimal neunundneunzighaben als agierenden bis tausend werdensie hier Einzel zu agieren anders als macht null eins im Sinn eins bis eins acht null eins sieben zweieins null null null null null nullalso diesesechzehnEinsen ist nichts anderes als zwei ?? sechzehn einzelnen null null minus eins zwei ?? sechzehn minus einsdas werdenNamenkann ich es auch noch nicht alle auf alle Stellen im Kopf zwei hochsechzehnminus eins sofünf sechzig tausend fünf drei fünftausendfünf drei fünfdas ist wenn alle Einzelgesetzedas ist die naive Art übersetzen kann von binär nach dezimal kommt auch vorist aber ein billigerweise nicht das was typischerweise passiertso wird sie direkt Binärzahlenin Dezimalzahlenübersetzender Ärger bei dieser Übersetzung ist es ich keine negativen Zahlen haben Samsung schon Gesinde können negative Zahlen bauenhier gäbe es keine negativen Zahlen ich würde immer sechzehn Bit speichernaber ich hätte keine Chance negative Zahlen zu machenwarenalle diese Zahlen muss dabei den vorne eine eins stetsden gibt man eine andere Bedeutung hier ab in der Mittesind wir irgendwo bei eins nullnull null nullden Zahlenmusterngibt man allein an der Bedeutung das werden nachher die negativen Zahlenundzwarinsbesonderewirdim Scriptsfür den Index Nummer zweizufolge mit Sinn zu schreiben also null XF FFGdieser hiermit diversen Witz aus schreiben wir das waswas ist das F in Bits ausgeschrieben?? einervier Einsen wunderbar für eins noch mal vier Einsenist es schwierigerin Bilddie Einzel ist es noch nichtdas wäre nämlich eins mehr als das hierwas ist das eins null null einszu setzenneun genau eins plus null groß acht das ist neun eines eins null eins null also was in BuchstabeA ?? und dann ist eins null eins eins B und einseins null ist sie eins eins null eins ist dieeins eins null eins zudieser hierdas wäre dieses BitmusterKommader wirdabsurderweiseLückentextzwei ??Text wird der Wert nicht fünfundsechzigtausendWiese wäre das wenn es um Rechnendezimal ganz üblichdasistalle Einzelne selbst?? fünfzig tausend fünf hundert fünfunddreißig?? wären das danngenau zwei weniger ?? Punkt zwei weniger denn hier fehlt mir die zwei es ist eins plus vier plus acht und so weiterund die zweialso zwei weniger?? sechzig tausend fünf drei drei fünf und sechzig tausend fünf drei dreides Dax gerne mit anabsurderweisesagt man jetzt nicht mehr das es schon sechzig tausendfünf hundert dreiunddreißigsondern dass wir gleichin einemfreiwilligen Spiel minus drei werdensie wieder offensichtlich das Ergebnis dreißig ?? Versuche defekt zu vermitteln waren das minus drei sein??Upgrade ?? werdenals alle diese Zahlen hiermit der eins vornefing eine andere Bedeutungdas Verbat sich die negativen Zahlenamdas heißt man kann auch relativ einfach ablesen was negative Zahlen sind guckt sich das erste Bild eines erste Bit gesetzt ist hat man eine negative Zahlichfür den vor dass das sinnvoll ist das man sagt das hierKomma zur Zahndrei dass es für den Lücken Text vier wenn Sie mich jetzt folgendes rechnennull X F F F die dieses Bitmuster wies da steht wenn sie zu den Bitmusterfünf addieren?? null null nullfünfProbleme das malwenn sie das tatsächlich tun Fakt soll das mal ausführlich hinschreiben das ist dann alsoeins eins eins eins einseins einseins eins eins null einsund dazu addiere ich fünf null null null null nullnullnullnullwas ist mit Muster für die fünfeinseins null eins wenn ich das tatsächlich?? es jetzt mal ganz wie Anamnese zu Fuß hiernur mit Binärzahlstatt Masseeins plus einswahrscheinlich inNullen undEinsen sind genau null und eins im Sinn also ?? Sie haben bei Dezimalzahlfünf und fünf null eins im Sinn Leerzeicheneins null eins in zehn jähriges null und null einen Sinn das macht einsihr kommt eins undeinsdas macht nullund eins im Sinneins und den Übertrag macht null und eins im Sinn eins und den Übertrag macht null und eins in den Blablablablablawir vorne ?? ich habe eins und eins Übertrag nullund jetztein siebzehntes Bitburger Weiseein siebzehntes Bildvon dem Übertragdass sie das Ergebnis seinalso wenn das hinschreiben wäre dashexadezimalnull sechseins null nullnull und hinten stets welche Zahlnull null eins null ist hexadezimalzwarwas müsste eigentlich rauskommenwas wollten einige raus habenminus drei diese Zahl soll minus drei sei nach meiner neuen Interpretationpersönlich an dich raus haben wollenminus drei plus fünf ?? zwei raus haben wollen ?? nicht ganz weitläufig sind ja diesen Übertrag?? schöne ist dieser Übertrag ist im siebzehnten Witz des Amerikanischenistes Pflicht einfach raus bei der Rechnungkein Platz für das siebzehnte Bilddas sich direkt bei der Rechnung und sie sind wunderbar ich rechne FFF D plus fünf nach zweiDeutsch dieses FFF D verhält sich also genau wie die Zahl minus drei verhalten sollteweil der Übertrag wirklichdas ist der Trick eine Stelle man rechnet ohne Übertragund ?? zwei hundert sechzehn wenn irgendjemand noch anMathematik erinnertirgendwann das erzähl zu gucken glaube ich nebenbeiRechnungmodul ?? zwei ?? sechzehn ist dasan dieser funktioniert lassendiese Übertragpflichtrausund dadurch wird tatsächlich diese Zahlen Anfangszeichenminus dreisich auch so verhalten sich die minus drei Verhalten muss diese Zahl plus fünf macht zweidas geht durch mit der Additionmit der Subtraktionund mit der MultiplikationKomma mit derMultiplikationvorgeführtes ist da noch mal sehen mit der Subaktion offensichtlichaber keiner Ärgermit der Modifikation geht's auch durchwarendie Eleganz von dem ganzen istdas man mit ein und demselben Rechenwerkpositive und negative Zahlen verraten kannich muss er diese Rechenoperationhier was ich nicht ich sondern der des Instruments oder Intel oder AMD mussdiese Rechenoperationin Transistoren gießenund wenn man es schafftnicht um einen separaten Satz an Transistoren für negative Zahlen einzubauenwäre das total hilfreich und hiermit schafft man dasSie benutzen dieselbe Maschinefür positive Zahlen liefert negative Zahlensie selber Rechenmaschinendas einzige was ich mache ist dass sichdiese Zahlen an das lese diese Zahl er sich nicht als fünfundsechzig tausend fünf hundert Blasen ich lese sie als minus dreiich rechne dasselbeaber ?? andere Interpretationdafürdieselben Transistoren machen andere Aufgabeeiner Klasse selberwird eine anschaulich andere Aufgabe kannst du machen dass er was sie vorgemacht haben Beistrich der die Tiere das Ergebnis andersals sicherlich negative Zeitnoch die Hälfte genau sie haben nur noch die Hälfte an Zahlen genaudas ist der Preis den man zahltsie halbieren den Zahnumfanghaben dafür aber negative Zahlenan das nennt sich das ?? über das Thema sagen diese Darsteller sich Zweierkomplementes gibt auch andere Möglichkeitennegative Zahlen darzustellenkönnen einfach das oberste Bild setzen und sagen?? negativandere Möglichkeit oder manifesteZahl draufaber diese Darstellung hierist die üblicheZweierkomplementnennt sich das war man so schön einfach damit rechnen kann??mit der Modifikation zeigendass es auch mit der Modifikation durchgeht alles geht mit Addition dazu mutiger zu ?? Division muss man aufpassen?? Division sowieso eklig zu bauenKomma die paar Spezialbefehleder Datei noch ein paar Rechnerals Beispiel für die Multiplikationwenn ich sowas rechnen willminus siebenmal minus zehn in dieser Darstellungdannbaue ich das um in dem ich rechnezwei hochsechzehnminus sieben ?? speichere nicht die minus sieben sondern was abspeichertMitmusters aus sechzehn minus sieben?? hier schoneherdas hier ist nichtda das hier ist nichtsgesagt?? fünf tausend vier sondern es ist zwei ?? sechzehnminus dreiSpeicher zwei ?? sechzehnminus sieben statt der minus sieben?? und ich speichere zwei ?? sechzehn minuszehnstatt der minus zehneigentlichdas sind die Bitmuster wieder entstehen?? gucken was dann passiert wenn ich das hierich habe in Anführungszeichenanwenn ich das jetzt ausrechnenmit der normalen Mathematik zwar sechzehn mal zwei ?? sechzehnten zwei ?? zweiunddreißigdann kommt zwar sechzehn mal minus zehn also minus zehn mal zwei hundert sechzehnkommt siebenmal zwar sechzehnund es kommt siebenmal zehn plus sieben malzehnallediese hierverschwinden im Überlaufdessen Vielfache von zwei hundert sechzehnalso Zahlen bei den vielleicht letzten sechzehn Bits null sind zwar zweiunddreißigsechzehn wird zehnmalzwar sechzehnC null und so weiter sofort alle diese werden im Überlauf verstecktund es kommt das richtige Ergebnis raus sieben mal zehn??als grobe Idee dass es auch mit der Modifikation von ??mit ?? Division wie gesagtBeistrichsowieso Beistrichaber Addition sogar zu Modifikationenlaufen durch diesen Zweierkomplementein und dieselbe Maschinerechnetmit positiven Zahlen und mit negativen Zahlendurch den Rechentrick