string nach unsigned long



  • wie kann man einen string in eine long variable kopieren?

    unsigned char a[3] = {"1234"}
    unsigned long b;

    b = a;

    in b sollte anschließend 31 32 33 34 stehen.

    Und gibt es eine Möglichkeit einen String zu shiften.

    unsigned char a[3] = {"1"};
    (0x31,0x00,0x00,0x00)

    char[0] = char[0] >> 8;
    (0x00,0x31,0x00,0x00)

    Gruß
    Johann



  • So?

    [cpp]
    unsigned char a[5] = "1234";
    unsigned long b;

    for(int i = 0; i != 4; i++)
    b &= a[i] << (i*4);
    [/cpp]

    Arrays "shiften" kannst du mit na rückwärtsdurchlaufenden Schleife.



  • Du programmierst in C++?

    Ich programmiere in ANSI C (PIC 18F448 Microcontroller)

    for(i = 0; i != 4; i++)
    {
    b = b | (long)abc[i] << i*8;
    }

    Funktioniert.

    Habe vorher Jahre in Assembler programmiert, an C muss ich mich erst gewönnen.



  • Jupp. Dein Code sieht besser aus 🙂


Anmelden zum Antworten