for logical shift