devxlogo

RotateLeftI – Rotate an Integer to the left

RotateLeftI – Rotate an Integer to the left

' Rotate an Integer to the left the specified number of times'' NOTE: requires Power2()Function RotateLeftI(ByVal value As Integer, ByVal times As Long) As Integer    Dim i As Long, signBits As Integer        ' no need to rotate more times than required    times = times Mod 16    ' return the number if it's a multiple of 16    If times = 0 Then RotateLeftI = value: Exit Function        For i = 1 To times        ' remember the 2 most significant bits        signBits = value And &HC000        ' clear those bit and shift to the left by one position        value = (value And &H3FFF) * 2        ' if the number was negative, then add 1        ' if bit 30 was set, then set the sign bit        value = value Or ((signBits 

devx-admin

Share the Post: