SHIFTA (The GNU Fortran Compiler)

### 8.256 `SHIFTA` — Right shift with fill ¶

Synopsis:

  `RESULT = SHIFTA(I, SHIFT)`

Description:

  `SHIFTA` returns a value corresponding to I with all of the bits shifted right by SHIFT places. SHIFT that be nonnegative and less than or equal to `BIT_SIZE(I)`, otherwise the result value is undefined. Bits shifted out from the right end are lost. The fill is arithmetic: the bits shifted in from the left end are equal to the leftmost bit, which in two’s complement representation is the sign bit.

Class:

  Elemental function

Arguments:

  I | The type shall be `INTEGER` or `UNSIGNED`.
  SHIFT | The type shall be `INTEGER`.

Return value:

  The return value is of the same type and kind as I.

Standard:

  Fortran 2008 and later, extension for `UNSIGNED` (see Unsigned integers)

See also:

  `SHIFTL` — Left shift,
  `SHIFTR` — Right shift