mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik integer an long integer übergeben


Autor: Jens Großmann (Firma: fa. Seuffer) (willi-helmchen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jens Großmann (Firma: fa. Seuffer) (willi-helmchen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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??

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genau...(und nein kein Denkfehler)

ein Zuweisung überschreibt immer den KMPL. Inhalt der Variable...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.