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