shiftl(x, shift):左移¶
逻辑左移函数。
声明¶
语法¶
retval = shiftl(int(number), 31);
integer(int32) function shiftli32(i, shift)
参数¶
x
是一个整数输入值。
shift
一个小于或等于 x
位大小的无符号整数值。 可能的值为 7、31 和 63。
返回值¶
返回值是整数类型,与 x
类型相同。
描述¶
shiftl(x, shift) 逻辑上将“x”左移“shift”位数。 shiftl
从 LSB(Least Ssignificant Bit) 转换为 MSB(Most Ssignificant Bit)。 从左端移位的位,即 MSB 位丢失。 零被附加到相反的右端。
类型¶
无符号整数值x
和无符号整数值shift
中支持的类型(7、31、63)小于或等于x
的位大小。
interface shiftl
module procedure shiftli8, shiftli32, shiftli64
end interface
contains
interface
integer(int8) function shiftli8(i, shift) result(r)
integer(int8), intent(in) :: i
integer :: shift
end function
integer(int32) function shiftli32(i, shift) result(r)
integer(int32) :: i
integer :: shift
end function
integer(int64) function shiftli64(i, shift) result(r)
integer(int64) :: i
integer :: shift
end function
end interface
示例¶
program intrinsics_shiftl
implicit none
integer, parameter :: x = kind(2)
integer :: retval
retval = shiftl(int(x), 7)
print *, retval
end program
结果:
4