- LiFePO4 Speicher Test         
Ergebnis 1 bis 4 von 4

Thema: 16 Bit auf 2x 8Bit aufteilen....

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Magge2k
    Registriert seit
    27.10.2004
    Beiträge
    163

    16 Bit auf 2x 8Bit aufteilen....

    Anzeige

    E-Bike
    Hi Leute...

    wie Teile ich 16Bit auf 2x 8 Bit auf?

    Ich dachte mir ich teile einfach meine 16Bit zahl durch 256 dies funktionierte auch...leider nur bedingt....am ende kam ich nicht auf 65535 sondern auf 65279 und bei dem wert 41054 auf 41055 machte er auch einen fehler

    41054 ist ja A05E

    und

    41055 wäre ja dann logischer weise A05F doch ich bekomme A15F her aus?

    Wer hat ne lösung wie man 16 Bit richtiger weise auf 2x 8Bit aufteilt?!?!


    wäre sehr dankbar....

    greez

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Da dürftest du ein Sprach/Technisches Problem haben, möglicherweise auch erst beim Wieder-Zusammensetzen.
    HighByte = 16Bit / 256
    Low Byte = 16Bit mod 256

    16Bit = HighByte * 256 + LowByte
    das stimmt schon so.

    Je nach Sprache geht das ein bißchen anders.
    Alle Zahlen müssen jedenfalls als unsigned definiert werden.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Magge2k
    Registriert seit
    27.10.2004
    Beiträge
    163
    Hmm...OK

    Stimmt....gut danke dann war ich schon auf dem Richtigen weg...
    in einem anderen Tread habe ich folgende antwort bekommen...

    higher = (unsigned char) (x>>;
    lower = (unsigned char) (x & 0x00ff);


    mit diesem Befehl ging es...

    greez und thx

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Hab grad' gesehen, daß dein gegner möglicherweise C++ heißt.
    Zum byteweise verschicken solltest du das anders machen, um bei negativen Zahlen keinesfalls in die Bredouille zu kommen
    Code:
    union {
         short                  w16Bit;
         unsigned  char    b8Bit[2];
       } both;
    
    
                 both.w16Bit = 41855;
    
                 Sende_byte( both.b8Bit[0] );
                 Sende_byte( both.b8Bit[1] );
    dann kommt das drüben mundgerecht an.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen