Finding the Value of a Bit

QUESTION: I need to find the value of a bit in a particular number. Is there a command like the MATLAB BitGet command to do this in IDL?

ANSWER: There is now. You can download it here.

But this is quite simple to do with the AND bitwise operator. Mati Meron points out that for bit number n (bit count starts at 0, as is usual in IDL) of integer x, you can find the bit value like this:

   bitValue = (x AND 2^n) / 2^n

Or, more generally, you can get all of the bit values in a number like this:

   array= 2ULL^UL64indgen(64)
   bitValues = (x AND array) / array

I've put this in an IDL function, named cgBitGet for your convenience. You can use it like this:

   IDL> Print, cgBitGet(128, 7)
   IDL> Print, cgBitGet(128, 6)
   IDL> Print, cgBitGet(255), FORMAT='(8I2)'
        0 0 0 0 0 0 0 0
        1 1 1 1 1 1 1 1

Web Coyote's Guide to IDL Programming