unsigned long set; /*set is after modified*/ set >>= 1;
I found this in a kernel system call but I don't understand, how does it work?