add unsigned shift
support unsigned partially