Next: IBSET, Previous: IBCLR, Up: Intrinsic Procedures

### 8.141 `IBITS` — Bit extraction

Description:
  `IBITS` extracts a field of length LEN from I, starting from bit position POS and extending left for LEN bits. The result is right-justified and the remaining bits are zeroed. The value of `POS+LEN` must be less than or equal to the value `BIT_SIZE(I)`.
Standard:
  Fortran 90 and later, has overloads that are GNU extensions
Class:
  Elemental function
Syntax:
  `RESULT = IBITS(I, POS, LEN)`
Arguments:

  I | The type shall be `INTEGER`.
  POS | The type shall be `INTEGER`.
  LEN | The type shall be `INTEGER`.

Return value:
  The return value is of type `INTEGER` and of the same kind as I.
Specific names:

  Name | Argument | Return type | Standard
  --- | --- | --- | ---
  `IBITS(A)` | `INTEGER A` | `INTEGER` | Fortran 90 and later
  `BBITS(A)` | `INTEGER(1) A` | `INTEGER(1)` | GNU extension
  `IIBITS(A)` | `INTEGER(2) A` | `INTEGER(2)` | GNU extension
  `JIBITS(A)` | `INTEGER(4) A` | `INTEGER(4)` | GNU extension
  `KIBITS(A)` | `INTEGER(8) A` | `INTEGER(8)` | GNU extension

See also:
  BIT_SIZE, IBCLR, IBSET, IAND, IOR, IEOR