Asp classic 经典ASP中的右移和左移运算符
如何在经典ASP中使用右移运算符。正如中所建议的,我使用“\”作为右移运算符。这给了我错误的结果 比如说 在javascript中,33555758>>24给出结果2。 但在经典ASP 33555758\24中给出除法结果Asp classic 经典ASP中的右移和左移运算符,asp-classic,operator-keyword,Asp Classic,Operator Keyword,如何在经典ASP中使用右移运算符。正如中所建议的,我使用“\”作为右移运算符。这给了我错误的结果 比如说 在javascript中,33555758>>24给出结果2。 但在经典ASP 33555758\24中给出除法结果 请帮助我。按位右移>不等于按给定数字简单除\,而是按给定次数除以整数2,即二进制10。位移位将一组位中的每个数字向右移动。也就是说,除以二进制10将从数字中删除一个二进制数字,并将数字右移 示例:5>>1=2 5 0000000000000000000000000
请帮助我。按位右移
>
不等于按给定数字简单除\
,而是按给定次数除以整数2,即二进制10。位移位将一组位中的每个数字向右移动。也就是说,除以二进制10将从数字中删除一个二进制数字,并将数字右移
示例:5>>1=2
5 00000000000000000000000000000101
5 >> 1 00000000000000000000000000000010 (2)
与5/2相同
i、 e.在您的情况下,它不是33555758\24
,而是24次除以2。由于vbscript中没有直接方法,因此可以按以下步骤执行
Function SignedRightShift(pValue, pShift)
Dim NewValue, PrevValue, i
PrevValue = pValue
For i = 1 to pShift
Select Case VarType(pValue)
Case vbLong
NewValue = Int((PrevValue And "&H7FFFFFFF") / 2)
If PrevValue And "&H80000000" Then NewValue = NewValue Or "&HC0000000"
NewValue = CLng(NewValue)
Case vbInteger
NewValue = Int((PrevValue And "&H7FFF") / 2)
If PrevValue And "&H8000" Then NewValue = NewValue Or "&HC000"
NewValue = CInt("&H"+ Hex(NewValue))
Case vbByte
NewValue = Int(PrevValue / 2)
If PrevValue And "&H80" Then NewValue = NewValue Or "&HC0"
NewValue = CByte(NewValue)
Case Else: Err.Raise 13 ' Not a supported type
End Select
PrevValue = NewValue
Next
SignedRightShift = PrevValue
End Function
用作
x = SignedRightShift(33555758, 24)
有关更多信息,请参阅