Antwort
Also ich habe mal eine VB-Funktion im Web gesucht und die dann entsprechend geändert (man war das mühsam … aber nun gehts auf jedenfall. Zuerst die zwei Funktionen und abschliessend dann noch ein Beispiel für Deinen Zweck
Dezimal --> Binär
Function Dec2Bin(Dec)
On error Goto 0
Do
If (Dec And 2 ^ i) \> 0 Then
Dec2Bin = "1" & Dec2Bin
Dec = Dec - 2 ^ i
Else
Dec2Bin = "0" & Dec2Bin
End If
i = i + 1
Loop Until Dec = 0
End Function
Binär --> Dezimal
Function Bin2Dec(Bin)
On Error GoTo 0
lngLen = Len(Bin)
For i = lngLen To 1 Step -1
If Mid(Bin,i,1) = "1" then
bin2Dec = Bin2Dec + 2 ^ (lngLen - i)
else
bin2Dec = Bin2Dec + 0
end if
Next
End Function
Beispiel
bit1 = 00110011
bit2 = 01001010
bitres = 01111101
if bin2dec(bit1) + bin2dec(bit2) = bin2dec(bitres) then
response.write "OK"
else
response.write "WRONG"
end if
ich bin mir nicht sicher, ob ich Deine Frage richtig verstehe, aber ich bin mir ziemlich sicher, dasss Kosh sie falsch verstanden hat.
Laut DevGuru (http://www.devguru.com/Technologies/vbscript/quickre…) kann der AND Operator genau wie in VB auch in VBScript für bitweise Vergleiche benutzt werden - und das dort angegebene Beispiel funktioniert. Wo genau liegt also Dein Problem?
Hi, danke für die riesen Mühe, ich glaube aber Thomas
hatte recht, daß Du mich etwas falsch verstanden hast…
Ich werde die Beispiele aber sicherlich noch brauchen können, THX!
Ich will lediglich abfragen, ob zum Beispiel beim BitWert
21 das Bit 4 gesetzt ist. Mit VB würde:
If (21 AND 4) = 4 Then
True zurückgeben.
Auch an THOMAS: Ich habe es in ASP probiert, aber es kam immer nur 0 raus. Ich werde es aber noch mal ausgiebiger testen, melde mich dann noch mal…