www.mikrocontroller.net

Forum: Compiler & IDEs convert 2 byte to integer


Autor: gert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibt es eine funktion zum umwandeln eines byte arrays zu integer wie 
folgt:

arr[2] = {0x31,0x32}; //12

==> ergebnis: int x = 12

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Prinzip ja, wenn Du Deinen String korrekt Nullterminierst:
arr[3] = { 0x31, 0x32, 0};

ergebnis = atoi(arr);

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
vielleicht mit,
int x = *(int*)arry
?!? ansonsten muß du erst einen Zeiger umbiegen.
Außerdem mußt du beachten ob little ider big endian

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achso einen String meinst du! Ich stand ein bissel auf dem Schlauch. 
Sorry

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
alternativ:

unsigned int target=0;

target=arr[1];
target=target<<8;
target+=arr[2];


MfG

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sry,
meinte natürlich 0 und 1 als indizes, ist wohl noch zu früh :-)

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
huch ,
und du musst natür noch 48 abziehen, wegen nullversatz der ASCII-Null

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
huch ,
und du musst natürlich noch 48 abziehen, wegen nullversatz der 
ASCII-Null

Autor: Thomas Bremer (Firma: Druckerei Beste) (virtupic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau, dannn landen wir bei

x = (arr[0] - '0') * 10 + arr[1] - '0';

virtuPIC
/ggadgets for tools & toys

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.