typecast von Byte in Integer
-
Hallo zusammen,
kann mir jemand auf die Sprünge helfen, wie ich ein Byte-Feld in ein Integer-Feld konvertieren kann???
Tausend Dank,
Thomas
-
Byte Feld?
Meinst duchar a[]={1,2,2};
?
dann probier mal
#include <string.h> #include <stdio.h> #include <math.h> int convert(const char *a,size_t n) { int ret=0; for(size_t i=0;i<n;++i) ret+=a[i]*pow(10,n-i-1); return ret; } int main(void) { char a[]={1,2,3}; //=123 printf("%d\n",convert(a,3)); return 0; }
-
@kingruedi
*schluck*
Meine arme FPUWäre in Bezug auf Dein Beispiel folgender Code nicht angebrachter:
char* convert(char *a,size_t n) { int ret=0; for(size_t i=0;i<n;++i) a[i] += '0'; return a; } int main(void) { char a[]={1,2,3}; //=123 printf("%s\n",convert(a,3)); return 0; }
-
erfüllt nur nicht die gewünschte Aufgabe
-
ups
Da hab ich was falsch verstanden, allerdings ist Dein Code trotzdem zu aufwendig.int convert(const char *a, size_t n) { int ret=0; for( size_t i=0; i<n; ++i) ret = ret*10+a[i]; return ret; }