Fortran: Fortran 95: Standardfunktionen: Bitfunktionen

Aus Wikibooks


Für Variablen mit integer-Datentyp können Bitoperationen durchgeführt werden.

Funktion Beschreibung
i = bit_size ( i ) Bitanzahl.

Beispiele:

  • integer, dimension(3) :: a = (/ 1, 2, 3/)
    bit_size( a ) ⇒ 32
i = ibset ( i1, i2 ) Bit i2 der Zahl i1 auf 1 setzen. Bitnummer startet bei 0 (LSB entspricht 20):

Beispiele:

  • integer :: a = 0
    ibset( a, 0 ) ⇒ 1
  • integer :: a = 0
    ibset( a, 4 ) ⇒ 16
i = ibclr ( i1, i2 ) Bit i2 der Zahl i1 auf 0 setzen. Bitnummer startet bei 0 (LSB entspricht 20):

Beispiele:

  • integer :: a = 7
    ibclr( a, 0 ) ⇒ 6
  • integer :: a = 7
    ibclr( a, 2 ) ⇒ 3
i = ishft ( i1, i2 ) Gesamtes Bitset einer Zahl i1 um i2 Stellen verschieben.
  • i2 > 0: nach links verschieben
  • i2 < 0: nach rechts verschieben

Beispiel:

  • ishft( B"1001011", 3 ) ⇒ B"1001011000"
i = ishftc ( i1, i2 [, i3] ) Gesamtes Bitset einer Zahl i1 um i2 Stellen verschieben (circular shift). Das optionale Argument i3 gibt die Bereichsgröße in bit, welche für den Verschiebevorgang relevant ist, vor.
  • i2 > 0: nach links verschieben
  • i2 < 0: nach rechts verschieben

Beispiel:

  • ishftc( B"1001011", 3, 8) ⇒ B"1011010"
l = btest ( i1, i2 ) Bitwert einer Zahl i1 an einer bestimmten Bitposition i2 ermitteln.

Rückgabewert:

  • .true., wenn Bitwert = 1
  • .false., wenn Bitwert = 0.
i = iand ( i1, i2 ) Bitweise logische AND-Verknüpfung.
i = ior ( i1, i2 ) Bitweise logische OR-Verknüpfung.
i = ieor ( i1, i2 ) Bitweise logische EXOR-Verknüpfung.
i = not ( i ) Bitweises logisches NOT.