This documentation was styled with a demo skin from the Premium Pack 4 add-on for Help & Manual. The contents of the skin are encrypted and not configurable. You can only publish HM projects with this skin. You cannot edit it or change it.
This version is copyright and may only be used for local testing purposes. It may not be distributed.
Please purchase the full version of the Premium Pack to get the configurable skins and remove this notice. The package will also include the Toolbox configuration utility for Premium Pack skins.
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