不错的主要用于加密的vbs(asp)位移运算类

  <script language="vbscript">

  ' Aother: 奔腾的心

  '     QQ: 7180001

  '   Date: 2008-01-17

  Class mShift

  Private m_lPower2(31)

  Public Function RShift(ByVal lThis, ByVal lBits)

  On Error Resume Next

  Init

  If (lBits <= 0) Then

  RShift = lThis

  ElseIf (lBits > 63) Then

  ' .. error ...

  ElseIf (lBits > 31) Then

  RShift = 0

  Else

  If (lThis And m_lPower2(31 - lBits)) = m_lPower2(31 - lBits) Then

  RShift = (lThis And (m_lPower2(31 - lBits) - 1)) * m_lPower2(lBits) Or

  m_lPower2(31)

  Else

  RShift = (lThis And (m_lPower2(31 - lBits) - 1)) * m_lPower2(lBits)

  End If

  End If

  End Function

  Public Function LShift(ByVal lThis, ByVal lBits)

  On Error Resume Next

  Init

  If (lBits <= 0) Then

  LShift = lThis

  ElseIf (lBits > 63) Then

  ' ... error ...

  ElseIf (lBits > 31) Then

  LShift = 0

  Else

  If (lThis And m_lPower2(31)) = m_lPower2(31) Then

  LShift = (lThis And &H7FFFFFFF) \ m_lPower2(lBits) Or m_lPower2(31 - lBits)

  Else

  LShift = lThis \ m_lPower2(lBits)

  End If

  End If

  End Function

  Private Sub Init()

  On Error Resume Next

  m_lPower2(0) = &H1&

  m_lPower2(1) = &H2&

  m_lPower2(2) = &H4&

  m_lPower2(3) = &H8&

  m_lPower2(4) = &H10&

  m_lPower2(5) = &H20&

  m_lPower2(6) = &H40&

  m_lPower2(7) = &H80&

  m_lPower2(8) = &H100&

  m_lPower2(9) = &H200&

  m_lPower2(10) = &H400&

  m_lPower2(11) = &H800&

  m_lPower2(12) = &H1000&

  m_lPower2(13) = &H2000&

  m_lPower2(14) = &H4000&

  m_lPower2(15) = &H8000&

  m_lPower2(16) = &H10000

  m_lPower2(17) = &H20000

  m_lPower2(18) = &H40000

  m_lPower2(19) = &H80000

  m_lPower2(20) = &H100000

  m_lPower2(21) = &H200000

  m_lPower2(22) = &H400000

  m_lPower2(23) = &H800000

  m_lPower2(24) = &H1000000

  m_lPower2(25) = &H2000000

  m_lPower2(26) = &H4000000

  m_lPower2(27) = &H8000000

  m_lPower2(28) = &H10000000

  m_lPower2(29) = &H20000000

  m_lPower2(30) = &H40000000

  m_lPower2(31) = &H80000000

  End Sub

  End Class

  Dim sft

  Set sft = New mShift

  MsgBox sft.RShift(200, 4)

  MsgBox sft.LShift(200, 4)

  Set sft = Nothing

  </script>

  <script language="javascript">

  alert(200<<4);

  alert(200>>4);

  </script>