Forum: Compiler & IDEs convert 2 byte to integer


von gert (Gast)


Lesenswert?

gibt es eine funktion zum umwandeln eines byte arrays zu integer wie 
folgt:

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

==> ergebnis: int x = 12

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Im Prinzip ja, wenn Du Deinen String korrekt Nullterminierst:
1
arr[3] = { 0x31, 0x32, 0};
2
3
ergebnis = atoi(arr);

von Gast (Gast)


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

von Gast (Gast)


Lesenswert?

achso einen String meinst du! Ich stand ein bissel auf dem Schlauch. 
Sorry

von Bernhard (Gast)


Lesenswert?

alternativ:
1
unsigned int target=0;
2
3
target=arr[1];
4
target=target<<8;
5
target+=arr[2];

MfG

von Bernhard (Gast)


Lesenswert?

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

von Bernhard (Gast)


Lesenswert?

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

von Bernhard (Gast)


Lesenswert?

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

von Thomas B. (Firma: Druckerei Beste) (virtupic)


Lesenswert?

Genau, dannn landen wir bei

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

virtuPIC
/ggadgets for tools & toys

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
Noch kein Account? Hier anmelden.