shiftr(x, shift):右移

逻辑右移功能。

声明

语法

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

参数

x 是一个整数输入值。

shift 一个小于或等于 x 位大小的无符号整数值。 可能的值为 7、31 和 63。

返回值

返回值是整数类型,与 x 类型相同。

描述

shiftr(x, shift) 将“x”逻辑右移“shift”位数。 shiftr 从 MSB(Most Ssignificant Bit) 转换为 LSB(Least Ssignificant Bit)。 从右端移位的位,即 LSB 位丢失。 零被附加到相对的左端。

类型

无符号整数值x和无符号整数值shift中支持的类型(7、31、63)小于或等于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

示例

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

结果:

2

也可以看看

shiftl