zweierkompliment



  • Hallo

    Ich habe eine variable uint16_t raw_x
    Diese Variable hat eine Größe von 16 Bit (0 - 65536)
    Da ich die ersten 4 Bits nicht benötige, möchtet und auserdem ein Vorzeichen benötige möchte ich diese Zahl in eine 12 Bit Zahl (-2048 bis 2047) umwandeln.

    Könntet ihr mir hier ein bischen auf die Sprünge helfen?
    Danke vielmals
    SG



  • Wenn du ein Vorzeichen brauchst dann deklariere doch nicht als unsigned int
    was hat das denn für einen Zweck?
    Und 12 bit als Datentyp wirst du selten finden. 😉
    Lesen bildet, also nimm dir mal ein paar kostenlose Tutorials als Bettlektüre
    Happy coding

    PS: Meimst du Komplement? Ja wo isses denn?



  • ja natürlich meine ich Zweier"komplement" 🙂

    Ich bekomme die Variable von einer anderen Anwendung so übergeben, daran kann ich nichts ändern. Ja gut das mit den 12 Bits wird ja nicht so heikel sein, dann geb ich halt von den 16 Bits nur die ersten 12 aus, oder?

    @Bettlektüre: auch hier hast du recht. Ich bin fachfremd, und bin erst seit ein paar Tagen am "programmieren". Natürlich heißt das für mich auch viel nachlesen, aber wie gesagt, geht halt nicht alles auf einmal.

    und dann wollt ich halt mal hier nach hilfe fragen. Was für eine Idee



  • Japp, wenn du in einen 16bit Wert einen kleineren Wert schreibst (z.b. 1) dann ist es eben 1. Das "verschwendet" dann 14 bit (bei Vorzeichen), aber das ist immer der Fall. 😃

    Im Forum ist irgendwo ein C Howto verlinkt. Oder google mal nach C Tutorial.
    Ist am Anfang immer etwas zäh der Stoff, aber wo ist das nicht so 😃 😃

    Geile Idee, gibt immer prompte Antworten auch wenn man was anderes erwartet hat (entspricht 1:1 der Programmierung) 😃
    Viel Spass noch dabei



  • Vielen Dank für den Tip, werd ich mich gleich einmal umschaun.

    SG


Log in to reply