Found unknown operator - need definition

I use mostly java these days and while trying to convert a ham radio PSK31 program in GTK to java I ran across an operator I have never seen and cannot google to find out what it is. Below is the statement in which it appears. It is the double !! that has me confused. Thanks for any help. Buddy

s->shreg = (s->shreg << 1) | !!bit;
It is just double negation. It is a trick to convert any non-zero integer to 1, and 0 to 0.
Topic archived. No new replies allowed.