(push @num, (($num & 1) ? 1 : 0)) and $num>>=1 until 1 > $num;