Navigation:  ThinBASIC Modules > Core (thinBasic Core Engine) > Numeric functions >

SHIFT

Previous pageReturn to chapter overviewNext page

 

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

 

SHIFTN,

 

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