Oh man, wie frage ich BITWERTE ab ?

Hallo,

das einfachste von der Welt finde ich nirgends beschrieben.

Wie frage ich Bitwerte ab??
In VB ganz einfach:

If (Bitwert1 And Bitwert2) = Bitwert2 then

Leider ist das in VBScript nur ein logischer Vergleich, wie geht es denn auch mit VBScript???

Danke Z.

Heyho…

Ich habe auf Anhieb gerade nix gefunden. Aber ich schaue dass ich noch schnell ne Funktion basteln kann :smile:

Also gib mir einfach einwenig Zeit :smile:

Chris

Antwort :smile:
Also ich habe mal eine VB-Funktion im Web gesucht und die dann entsprechend geändert (man war das mühsam :smile: … aber nun gehts auf jedenfall. Zuerst die zwei Funktionen und abschliessend dann noch ein Beispiel für Deinen Zweck :smile:

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

Viele Grüsse aus der kalten, verregneten Schweiz :smile:

Chris

Wo ist das Problem?
Hallo Zombie,

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?

Thomas

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…

Z.

Aha…na dann :smile:

Aha…na dann :smile:

Sorry, ich hab es noch mal hardcodiert getestet, mit dem AND klappt in diesem Falle…
Danke noch mal…