;+ ;NAME: ; bits2 ;PURPOSE: ; Given a byte or integer, return a vector of 8 or 16 values ; which are the binary representation of the value. ;INPUT: ; invalue - The byte or integer value to check ;OUTPUT: ; bitarr - The 8-element array with values set ; if the bit is set ;HISTORY: ; Written 19-dec-1996, RAS after BITS by M.Morrison ; but correcting negative integer problems and returning ; 32 byte arrays for longwords regardless of maximum value ; 17-feb-2001 loop index long. ; ;- PRO BITS2, invalue, BITARR, qprint ; if (n_elements(qprint) eq 0) then qprint = 0 ; n = n_elements(invalue) nbit = 2^(datatype(invalue,2)+2) ; bitarr = bytarr(nbit, n) for i=0L, n-1 do begin bitarr(0,i) = ishft( invalue(i), -indgen(nbit)) and 1b if qprint eq 1 then $ print,string(/print, long(invalue(i)))+' = '+$ string(/print,bitarr(nbit-1-indgen(nbit),i),format='(4(1x,4i1,1x,4i1))') endfor ; end