I read the article this site has on Compound assignments. And I have yet to find the answer to what "<<=" and ">>=" do in general. I tryed google searching on 10 different sites but none have a noob friendly explanation. Any one care to help?.
x>>=y is short for x=x>>y. Or do you mean >> and <<? They perform bit shifts to the right and left (which is equivalent to a division or multiplication by 2^y, respectively).
Erm, no. It's 2y because the shifts are performed in the binary representation of the number (i.e. base 2). For example, the number 42 in binary is 101010[2]. If you calculate 42>>2 it shifts that two digits to the right (and 0s are shifted in from the left), so it becomes 001010[2]=10. That's equivalent to a integer division by 2²=4.
Same for shifting to the left: the result of 42<<2 is 10101000[2]=168=42*4=42*2².
If the shifts were done in the decimal representation of the number, it would be 10y, e.g. 23 shifted two digits to the left would be 2300, which is equivalent to a multiplication by 10²=100.
So in a base 2 system something like 0010000(4) <<= 2; is just another way of saying to move the 1 from that 0010000 two spaces to the right?(Basically in layman's term). So it would equal 00001000(16).