bit.ashr

Shifts a number right, preserving sign

Prototype

n = bit.ashr (num, bits)

Description

This takes two arguments. The first is converted to signed 'long long' (64-bit integer), the second to unsigned 'long long' (64-bit unsigned integer). The first argument is shifted right the number of bits in the second argument.

Use this version for shifting signed numbers right, as it preserves the sign. (The other version, bit.shr, will shift the sign bit into the number part).

eg.

print (bit.ashr (-1024, 6)) --> -16

Lua functions

Topics