Analyse byte



  • So wieder eine Frage...

    Ich habe ein array mit 4 bytes. Das letzte byte ist z.B 01001001 aber ich interesiere mich nur fur die letzte drei bits. Wie can ich nur die drei letzte bits nehmen und die speihern ?



  • foo & 7



  • Mit einer AND Verknüpfung wo nur die letzten 3 bits gesetzt sind.
    Variable &= 7



  • unsigned char array[4];
    unsigned char DreiBits;
    /* ... */
    DreiBits = array[3] & 0x07;
    /*...*/
    

    Abfrage auf einzelne Bits:

    unsigned char var;
    /* ... */
    
    /* Bit 0: */
    var = array[3] & 0x01;
    /* Bit 1: */
    var = array[3] & 0x02;
    /* Bit 2: */
    var = array[3] & 0x04;
    /* Bit 3: */
    var = array[3] & 0x08;
    /* Bit 4: */
    var = array[3] & 0x10;
    /* Bit 5: */
    var = array[3] & 0x20;
    /* Bit 6: */
    var = array[3] & 0x40;
    /* Bit 7: */
    var = array[3] & 0x80;
    

Log in to reply