Kennt jemand Beispiele für Links- und Rechtshänder? Ich bin neu in ASP. Ich fand Bit-Operatoren wie AND,OR,NOT nur
Antworten
Zu viele Anzeigen?Es gibt keine direkten Methoden für die Links- und Rechtsverschiebung in vbscript, aber da es sich um eine einfache Verschiebung jeder Ziffer in einem Satz von Bits nach links oder rechts handelt, was durch die Division durch die Binärzahl 10 (Ganzzahl 2) erreicht werden kann, gibt es hier Hilfsmethoden, die dies tun
Function LeftShift(pValue, pShift)
Dim NewValue, PrevValue, i
PrevValue = pValue
For i = 1 to pShift
Select Case VarType(pValue)
Case vbLong
NewValue = (PrevValue And "&H3FFFFFFF") * 2
If PrevValue And "&H40000000" Then NewValue = NewValue Or "&H80000000"
NewValue = CLng(NewValue)
Case vbInteger
NewValue = (PrevValue And "&H3FFF") * 2
If PrevValue And "&H4000" Then NewValue = NewValue Or "&H8000"
NewValue = CInt("&H"+ Hex(NewValue))
Case vbByte
NewValue = CByte((PrevValue And "&H7F") * 2)
Case Else: Err.Raise 13 ' Not a supported type
End Select
PrevValue = NewValue
Next
LeftShift = NewVAlue
End Function
Function RightShift(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 "&H40000000"
NewValue = CLng(NewValue)
Case vbInteger
NewValue = Int((PrevValue And "&H7FFF") / 2)
If PrevValue And "&H8000" Then NewValue = NewValue Or "&H4000"
NewValue = CInt(NewValue)
Case vbByte
NewValue = CByte(PrevValue / 2)
Case Else: Err.Raise 13 ' Not a supported type
End Select
PrevValue = NewValue
Next
RightShift = PrevValue
End Function
Weitere Informationen finden Sie unter http://chris.wastedhalo.com/2014/05/more-binarybitwise-functions-for-vbscript/
http://www.blackwasp.co.uk/CSharpShiftOperators.aspx
Das ist C#, aber die gleichen Operatoren funktionieren auch in neueren Versionen von VB.Net.