Hex Array in unsigned int konvertieren

10/02/2009 - 17:25 von Martin Kleiner | Report spam
Hi

Ich habe ein 8 byte array mit hex chars, zum Beispiel
['c','5','3','1','0','6','5','9'] und ich moechte dies in einen
unsigned int i = 0xc5310659 umwandeln. Gibt es hier in
C einen leichten Weg dies zu realisieren

Das hier kommt mir ein bisschen umstaendlich vor

unsigned int arrToInt = 0;

for(i=0; i<8; i++) {
arrToInt =(arrToInt<<8) | toIntVal(charBuffer[i]);

}

int toIntVal(char c)
{
int value = 0;

switch (c)
{
case '0':
value = 0;
break;
case '1':
value = 1;
break;

default:

return val;

}

Waere dankbar wenn mir hier jemand eine bessere Idee hat.
 

Lesen sie die antworten

#1 ram
10/02/2009 - 17:32 | Warnen spam
Martin Kleiner writes:
Das hier kommt mir ein bisschen umstaendlich vor



Ich empfinde es gar nicht als so schlecht.

arrToInt =(arrToInt<<8) | toIntVal(charBuffer[i]);
Waere dankbar wenn mir hier jemand eine bessere Idee hat.



Man könnte die »8« oben vielleicht noch durch eine »4«
ersetzen.

Statt »toIntVal« wàre auch eine Reihung:

int intVal[ 128 ]= { -1, -1, ..., 0, 1, 2, ...
10, 11, 12, 13, 14, 15, -1, -1, ...}

möglich, die dann mit »intVal[ charBuffer[ i ]]« benutzt wird.

Ähnliche fragen