use unsigned bit shift