dedicated functions for bitshifting