mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP 2 short Variablen in int packen


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,

ich habe ein Problem, welches ich nicht bearbeiten konnte. Ich will 2 
short Variablen in einen Int-Bereich packen (packing&unpacking): 
2x2Bytes -> 4 Bytes.

Ich habe folgendes probiert:

short s1,s2;
int temp;

temp &= 0x0000; //clear bits
fscanf(file,"%d",&s1); //read input1:
temp = s1<<16;
fscanf(file,"%d",&s2); //read input2:
temp = temp | s2;


Kann mir jemand sagen, was daran falsch ist?

Autor: bla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> temp = s1<<16;

damit schiebst du das ergebnis aus dem short raus bevor es dem int 
zugewiesen wird. probier mal folgendes:

temp = s1;
temp = temp << 16;

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es funktioniert jetzt:


short s1,s2;
int temp;

temp &= 0x00000000; //clear bits
fscanf(file,"%d",&s1); //read input1:
fscanf(file,"%d",&s2); //read input2:
temp = s1;
temp = (temp<<16)&FFFF0000;
temp |= s2;


Danke!

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.