Carl wrote: > Dear friends, > > I am currently porting a fortran program to Python but am stuck on the > intrinsic IBITS function. > > Does anyone know about a replacement function for IBITS in Python? > > Yours, Carl > > IBITS(I, POS, LEN) > > Extracts a sequence of bits. > > I > must be of type integer. > > POS > must be of type integer. It must be nonnegative and POS + LEN must be > less than or equal to BIT_SIZE (I). > > LEN > must be of type integer and nonnegative. > > Class > > Elemental function > > Result Type and Attributes > > Same as I. > > Result Value > > The result has the value of the sequence of LEN bits in I beginning at bit > POS, right-adjusted and with all other bits zero. > > The bits are numbered from 0 to BIT_SIZE(I)-1, from right to left. > > Examples > > IBITS (14, 1, 3) has the value 7. >
No, don't know, but you could write one yourself PDQ. Something like this: def ibits(arg, pos, len): return (arg >> pos) & ((1 << len) - 1) if __name__ == "__main__": def testit(arg, pos, len, reqd): result = ibits(arg, pos, len) print arg, pos, len, reqd, result, "* "[result == reqd] testit(14, 1, 3, 7) for pos in range(6): testit(4095, pos, 3, 7) for pos in range(6): testit(-1, pos, 3, 7) for pos in range(6): testit(0, pos, 3, 0) for pos in range(0, 32, 4): testit(0x12345678, pos, 4, 8-pos/4) for pos in range(0, 32, 4): testit(0x87654321, pos, 4, 1+pos/4) -- http://mail.python.org/mailman/listinfo/python-list