Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB4,VB5,VB6,VBS
Expertise: Intermediate
Jun 26, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

RotateLeft - Rotate a Long to the left

' Rotate a Long to the left the specified number of times
' NOTE: requires Power2()

Function RotateLeft(ByVal value As Long, ByVal times As Long) As Long
    Dim i As Long, signBits As Long
    ' no need to rotate more times than required
    times = times Mod 32
    ' return the number if it's a multiple of 32
    If times = 0 Then RotateLeft = value: Exit Function
    For i = 1 To times
        ' remember the 2 most significant bits
        signBits = value And &HC0000000
        ' clear those bit and shift to the left by one position
        value = (value And &H3FFFFFFF) * 2
        ' if the number was negative, then add 1
        ' if bit 30 was set, then set the sign bit
        value = value Or ((signBits < 0) And 1) Or (CBool(signBits And _
            &H40000000) And &H80000000)
    RotateLeft = value
End Function
Francesco Balena
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date