Hy Leute, ich hab mal eine Frage zum Verständnis. ich will in meinem Programm eine singed integer an eine Long singned Integer übergeben. Und mache das derzeit so: signed int a = 0; long signed int b = 0; a= IrgendeinWert; .... b=a; Ist das so richtig und wenn ja, ist in C definiert das die oberen Bits der long Integer die in dem Moment nicht benötigt werden mit 0 gefüllt werden, oder bleibt da der Wert stehen der vorher drin war?? Gibt es einen Möglichkeit die oberen noch "unbenötigten" bits der Long integer definiert auf null zu setzen und gleichzeitig die Variable zu zuweisen also so in etwa so b = (highBits=0 und lowbits=a) //ist natürlich Pseudocode
Wenn Du einer Variable einen Wert zuweist und dieser Wert in die Variable hineinpasst, dann steht in der Ergebnisvariable hinterher genau das, was Du zugewiesen hast. Mit Nullen füllen ginge übrigens schon aus dem Grund nicht, dass es sich um vorzeichenbehaftete Werte handelt und dementsprechend Nullen u.U. tödlich wären (Zweierkomplement). Das signed kann man übrigens weglassen, ein int ist per Definition signed . Es muss nur angegeben werden, wenn es explizit unsigned sein soll.
also müsste das ganze so aussehen: int a = 0x0000; long int b = 0xA1000000; a = 0x2bc8; ... b = a; Dann ist b nach der neuen Zuweisung auf jeden Fall b = 0x00002bc8 und nicht b=A1002bc8 oder mache ich da nen Denkfehler??
genau...(und nein kein Denkfehler) ein Zuweisung überschreibt immer den KMPL. Inhalt der Variable...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.