Navigation

2.1.2 Bitorientierte Operatoren

Bitorientierte Operatoren ermöglichen die direkte Manipulation einzelner Bits:
~ Einerkomplement   ~x
& bitweise Konjunktion (UND)   x & 036
^ bitweise Antivalenz (exklusives ODER)   x ^ 0100
| bitweise Disjunktion (inklusives ODER)   x | y
>> bitweise Rechtsverschiebung   x >> 2
<< bitweise Linksverschiebung   y << 1

Die Operanden logischer Operatoren werden bitweise verknüpft nach folgender Regel:

  x     y    x  &  y    x  |  y    x  ^  y 
0     0
0     1
1     0
1     1
0
0
0
1
0
1
1
1
0
1
1
0
Bedingungen für Operanden:

VERBATIM/b212: 

 x : 0101 0001                 y: 0011 1001
 x << 4    ==> 0001 0000       x & y    ==> 0001 0001
 x >> 4    ==> 0000 0101       x | y    ==> 0111 1001
 ~ x       ==> 1010 1110       x ^ y    ==> 0110 1000

BEISPIELE/b212a.c: 

#include <stdio.h>
int wordlen()      
{
   int i; unsigned wort;

   i = wort = 0;
   wort = ~wort;                    /* alle Bits 1 */
   while (wort != 0) {
        wort = wort >> 1;
        i++;
   }
   return(i);
}

main()  /* Zaehlen der Bits eines Maschinenewortes */
{
   printf("Anzahl der Bits: %d\n",wordlen());
}

Navigation