<< Click to Display Table of Contents >> Navigation: ThinBASIC Core Language > BuiltIn Functions > Numeric functions > SHIFT |
Description
Shift the bits in an integer-class variable.
Syntax
n = SHIFT [SIGNED] {LEFT | RIGHT} iVar, Count
Returns
Number: the value of iVar after shifting requested bytes.
Parameters
Name |
Type |
Optional |
Meaning |
iVar |
Numeric |
No |
Any numeric integer class Variable: Byte, Word, Integer, DWord, Long, Quad
|
Count |
Number |
No |
Specify the number of bits by which to shift iVar. |
Remarks
The SIGNED option shifts everything, but does not allow the sign (positive or negative) of the value to change.
The LEFT or RIGHT option determines the direction of the bit SHIFT operation.
SHIFT LEFT shifts the bits toward the high-order end of iVar, and SHIFT RIGHT shifts bits toward the low-order end of iVar.
Restrictions
iVar variable must be variable and not a numeric expression
iVar variable is always changed.
See also
Examples
Thanks to Abraxas for the following script example
' Usage of the SHIFT Instruction example
' Binary Divide by 2 (no remainder)
Dim MyByte As Byte VALUE &h08 ' Initialise Byte to 8
Dim sMsg As String
sMsg += "Original Byte Value " & Hex$(MyByte,2) & $CRLF & $CRLF
SHIFT SIGNED RIGHT MyByte,1 ' Binary Divide by 2 probably quicker than a /
sMsg += " New Byte Value " & Hex$(MyByte,2) & $CRLF
MSGBOX 0, sMsg