Table of Contents
SHR
The SHR()
function returns a number bit-shifted <n> positions to the right.
Function header
DECLARE FUNCTION SHR AS BYTE (num AS BYTE, n AS BYTE) SHARED STATIC INLINE DECLARE FUNCTION SHR AS INT (num AS INT, n AS BYTE) OVERLOAD SHARED STATIC INLINE DECLARE FUNCTION SHR AS WORD (num AS WORD, n AS BYTE) OVERLOAD SHARED STATIC INLINE DECLARE FUNCTION SHR AS LONG (num AS LONG, n AS BYTE) OVERLOAD SHARED STATIC INLINE
Each bit in the number will be moved <n> positions to the right.
- If the number is unsigned (BYTE or WORD), the most significant bit gets filled with a zero.
- If the number is signed (INT or LONG), signed right shifting is carried out, i. e. the most significant bit will be filled with the sign.
The least significant bit is discarded in all cases.
Note
Since SHR(number, n)
equals number / pow(2, n)
, the function is especially useful if you want to divide a number by powers of two. Bit shifting is carried out much faster than the division operation.
Example
PRINT SHR(82, 1) : REM outputs 41 PRINT SHR(%11110000, 4) : REM outputs 15 (binary 00001111) PRINT SHR(%00000001, 1) : REM outputs 0 because the LSB is discarded