Fortran 90 ビット関数
     j = bit_size(i)
     integer,intent(in) :: i
     integer            :: j
     
 btest
     整数iの第pos番目のビットが1(0)のとき.true.(.false.)を返す
     
     l = btest(i,pos)
     integer,intent(in) :: i, pos
     logical            :: l
     
 iand,ieor,ior,not
     iand: 整数i,jのビット論理積を返す
     ieor: 整数i,jのビット排他的論理和を返す
     ior : 整数i,jのビット論理和を返す
     not : 整数iのビット否定を返す
     
     l = iand(i,j)
     l = ieor(i,j)
     l = ior(i,j)
     l = not(i)
     integer,intent(in) :: i,j
     logical            :: l
     
 ibclr,ibset
     ibclr: 第pos番目のビットを0にした値を返す
     ibset: 第pos番目のビットを1にした値を返す
     
     k = ibclr(i,pos)
     k = ibset(i,pos)
     integer,intent(in) :: i, pos ! 0 <= pos < bit_size(i)
     integer            :: k
     
 ibits
     第pos番目のビットからlenビットを右づめし、残りのビットを0にする
     
     k = ibits(i,pos,len)
     integer,intent(in) :: i, pos, len ! 0 < pos+len <= bit_size(i), 0 < len
     integer            :: k
     
 ishft
     右を正としshift個だけビットをシフトする
     端からはみ出たビットは捨てられ、反対側のはしに0が入る
     
     k = ishft(i,shift)
     integer,intent(in) :: i,shift ! abs(shift) <= bit_size(i)
     
 ishftc
     右端size個のビットを、右を正としshift個だけ循環シフトする
     
     k = ishftc(i,shift [,size])
     integer,intent(in) :: i
     integer,intent(in) :: shift    ! |shift| <= size
     integer,intent(in) :: size ! 0 < size <= bit_size(i)
                                ! default bit_size(i)
     
back