unsigned char umwandeln

Gast #178040
hallo,

ich habe eine unsigned char variable, die als wer 0x01 enthaelt, diese
moechte ich an eine prozedur uebergeben, der ich als parameter sonst
werte der form "hallo welt" uebergebe, wie kriege ich das hin, das
der korrekt die 0x01 uebergibt ohne error usw., mit casten auf unsigned
char* habe ich es versucht, geht alles nicht, ich bin zu bloed dazu
Gast #178042
void foo( unsigned char* str );

void main() {
unsigned char wert = 0x01;
foo( &wert );
}

void foo( unsigned char* str ) {
 unsigned char wert = *str;
 printf( "\n %d \n", wert );
}
Gast #178043
void reverse(char str[])
{
    int c, i, j;
    for(i = 0,j = strlen(str)-1; i < j; i++, j--)
    {
        c = str[i];
        str[i] = str[j];
        str[j] = c;
    }
}

void IntToString(char str[], int value)
{
    int i, sign;

    if((sign = value) < 0 )
    {
        value = -value;
    }
    i = 0;
    do
    {
        str[i++] = value %10 + '0';
    }
    while((value /= 10) >0);
    if (sign < 0)
    {
        str[i++] = '-';
    }
    str[i] = '\0';
    reverse(str);
}

nicht vergessen, string.h zu include (für strlen())!
Gast #178044
Erstens macht das die Sache nur dezimal (nicht hex), zweitens ist es
eine umständliche Reimplementierung von itoa().

Wenn Platz kein Problem ist, ist sprintf() das Einfachste.  Wenn Platz
ein Problem ist, würde ich mir die Quelle von itoa() nehmen und sie
auf hex umstricken.
Gast #178045
Hallo, Jörg,

welche header datei muss man den einbinden, um itoa(), sprintf() etc zu
nutzen. in den unter c:\Programme\ATMEL\WinAVR\avr\include\avr\
vorhandenen Header dateine finde ich keine entsprechende Deklaration.
Sicher Braucht es auch noch eine lib zu linken dazu?


Gruß Martin
Gast #178047
itoa() funktioniert wie erwartet prima, es wird auch brav der
nullbegrenzer angehängt, und es funktioniert auch mit allerlei Radixen,
etwa mit 2, mit 10, mit 16 und auch mit 17!!.

guuuuuut

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.