我想为大整数的按位运算实现一个高效的库。我编写了以下覆盖的函数BTEST
:
FUNCTION testb_i2b(n,i)
INTEGER(I8B), DIMENSION(0:), INTENT(IN) :: n
INTEGER(I2B), INTENT(IN) :: i
INTEGER(I2B) :: j
LOGICAL :: testb_i2b
j = ISHFT(i,-6)
IF ( j .LE. UBOUND(n,1) ) THEN
testb_i2b = BTEST(n(j),i-ISHFT(j,6))
ELSE
testb_i2b = .FALSE.
END IF
END FUNCTION testb_i2b
该数组n
包含64*(SIZE(n)-1)
我的大整数的位。有没有更有效的方法来获得相同的功能?