shiftr(x, shift): Desplazamiento a la derecha

Función de desplazamiento lógico a la derecha.

Declaración

Sintaxis

retval = shiftr(int(number), 31);
integer(int32) function shiftri32(i, shift)

Argumentos

x es un valor de entrada entero.

shift un valor entero sin signo menor o igual que el tamaño de bit de x. Los valores posibles son 7, 31 y 63.

Valores devueltos

El valor devuelto es de tipo entero y del mismo tipo que x.

Descripción

shiftr(x, shift) lógicamente desplaza a la derecha x por el número de bits de shift. shiftr cambia de MSB(Mmás Ssignificativo Bit) a LSB(Leste Ssignificativo Bit). Bits desplazados desde el extremo derecho, es decir, los bits LSB se pierden. Los ceros se añaden al extremo izquierdo opuesto.

Tipos

Tipos admitidos en valor entero sin signo x y valor entero sin signo shift de (7, 31, 63) menor o igual que el tamaño de bit de x.

interface shiftr
    module procedure shiftri8, shiftri32, shiftri64
end interface

contains

interface
    integer(int8) function shiftri8(i, shift) result(r)
	integer(int8), intent(in) :: i
	integer :: shift
	end function

	integer(int32) function shiftri32(i, shift) result(r)
	integer(int32) :: i
	integer :: shift
	end function

	integer(int64) function shiftri64(i, shift) result(r)
	integer(int64) :: i
	integer :: shift
	end function
end interface

Ejemplos

program intrinsics_shiftr
    implicit none
    integer, parameter :: x = kind(4)
    integer :: retval
    retval = shiftr(int(x), 7)
    print *, retval
end program

Result:

2

Ver también

shiftl.