subroutine mvbits (src, ini1, nbits, des, ini2 ) integer*4 src, ini1, nbits, des, ini2
このルーチンは、ビット ini1 で始まる src からビット ini2 で始まる des に、指定された nbits ビット数だけビットを移動します。
使用法:
INTEGER*4 src, ini1, nbits, des, ini2
...
CALL mvbits(src, ini1, nbits, des, ini2)
制限事項:
ini1 + nbits <= 32 ini2 + nbits <= 32
例:
demo% cat mvb1.f
* mvb1.f <-- From src, initial bit 0, move 3 bits to
* des initial bit 3
* src des
* 543210 543210 <-- Bit numbers (VMS convention)
* 000111 000001 <-- Values before move
* 000111 111001 <-- Values after move
INTEGER*4 src, ini1, nbits, des, ini2
DATA src, ini1, nbits, des, ini2
& / 7, 0, 3, 1, 3 /
CALL mvbits ( src, ini1, nbits, des, ini2 )
WRITE (*,"(5O3)") src, ini1, nbits, des, ini2
END
demo% f77 -silent mvb1.f
demo% a.out
7 0 3 71 3
demo%
libfui.a
FORTRAN 77 リファレンスマニュアル