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

也可以看看

shiftr