Next: ISNAN, Previous: ISHFT, Up: Intrinsic Procedures [Contents][Index]

### 9.158 `ISHFTC`

— Shift bits circularly

*Description*:`ISHFTC`

returns a value corresponding to`I`with the rightmost`SIZE`bits shifted circularly`SHIFT`places; that is, bits shifted out one end are shifted into the opposite end. A value of`SHIFT`greater than zero corresponds to a left shift, a value of zero corresponds to no shift, and a value less than zero corresponds to a right shift. The absolute value of`SHIFT`must be less than`SIZE`. If the`SIZE`argument is omitted, it is taken to be equivalent to`BIT_SIZE(I)`

.*Standard*:Fortran 95 and later, has overloads that are GNU extensions

*Class*:Elemental function

*Syntax*:`RESULT = ISHFTC(I, SHIFT [, SIZE])`

*Arguments*:`I`The type shall be `INTEGER`

.`SHIFT`The type shall be `INTEGER`

.`SIZE`(Optional) The type shall be `INTEGER`

; the value must be greater than zero and less than or equal to`BIT_SIZE(I)`

.*Return value*:The return value is of type

`INTEGER`

and of the same kind as`I`.*Specific names*:Name Argument Return type Standard `ISHFTC(A)`

`INTEGER A`

`INTEGER`

Fortran 95 and later `BSHFTC(A)`

`INTEGER(1) A`

`INTEGER(1)`

GNU extension `IISHFTC(A)`

`INTEGER(2) A`

`INTEGER(2)`

GNU extension `JISHFTC(A)`

`INTEGER(4) A`

`INTEGER(4)`

GNU extension `KISHFTC(A)`

`INTEGER(8) A`

`INTEGER(8)`

GNU extension *See also*: