tech-userlevel archive   64-bit masks  Hi I'm writing a shared
library and have a two part question:  1. What is the correct
(portable?) way of specifying 64-bit constants?  If I need a
64-bit constant set to all 1s, will the following work on all
systems  unit64_t num = 0xffffffffffffffffULL;  2. I have an
array of 64 objects that I need to keep track of. I keep their
state (i.e. busy/free) in a 64-bit mask, 1 for busy, 0 for free.
unit64_t state;  Each object has an id, from 0 to 63. The bit
position in the 'state' mask corresponds to object's id. So if
object with id=5 becomes busy, it sets bit 5 in 'state' variable
to 1.  Multiple objects can be busy/free at the same time. I
need a fast way to look at the 'sate' variable and tell which
objects are busy, or free. Below is one algorithm I came up
with, can anyone suggest something faster?  uint64_t
current_state = state;          current_state >>= i;
if(current_state == (0xffffffffffffffffULL >> i))
break; /* all objects are busy *