Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


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

RotateRight - Rotate a Long to the right

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

Function RotateRight(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 RotateRight = value: Exit Function
    
    For i = 1 To times
        ' remember the sign bit and bit 0
        signBits = value And &H80000001
        ' clear those bits and shift to the right by one position
        value = (value And &H7FFFFFFE) \ 2
        ' if the number was negative, then re-insert the bit
        ' if bit 0 was set, then set the sign bit
        value = value Or ((signBits < 0) And &H40000000) Or (CBool(signBits And _
            1) And &H80000000)
    Next
    RotateRight = value
End Function
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


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

 

 

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