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