[VBScript] gedrag van 'And' en 'Xor'

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Kale Kiwi
  • Registratie: Juli 2008
  • Laatst online: 14-09 18:25
Beste medetweakers, ik zit met een vraag wat betreft een VBScript. Ik ben een VBScript aan het omzetten naar php (gaat eigenlijk heel erg simpel) en nu zit ik met een probleem wat betreft de 'And' en 'Xor' operatoren. In het script worden deze namelijk gebruikt met integers onder andere groter dan 1. Nu snap ik eigenlijk totaal niet hoe de desbtreffende waarde dan tot stand komt. Heb al een lange tijd door middel van trial en error het proberen uit te vogelen, maar ik kom er gewoon niet uit, is er hier iemand die enigsinds weet hoe deze operatoren werken of mij in de goede richting kunnen duwen?

Voorbeeld:
VBScript:
1
2
3
4
5
6
1 And 5 = 1
3 And 5 = 1
5 And 5 = 5
7 And 5 = 5
10 And 5 = 0 
12 And 5 = 4


Alvast bedankt voor de moeite!

Acties:
  • 0 Henk 'm!

  • danslo
  • Registratie: Januari 2003
  • Laatst online: 16-09 12:15
PHP Bitwise Operators

Binair gezien zijn die getallen gewoon een rijtje nulletjes en ééntjes:

code:
1
2
3
4
5
6
7
00000001 <- Decimaal: 1
00000101 <- Decimaal: 5
00000001 <- 1 & 5: 1 (Alleen de laatste bit komen overeen)

00001100 <- Decimaal: 12
00000101 <- Decimaal: 5
00000100 <- 12 & 5: 4


XOR is bijna hetzelfde, alleen dan moet alleen één van de bits een 1 zijn, bijvoorbeeld:
code:
1
2
3
10101010 <- Waarde A
01010101 <- Waarde B
11111111 <- A XOR B


Als het je alleen gaat om het omzetten van de code, kan je gewoon de syntax uit het linkje gebruiken:
PHP:
1
2
3
4
5
6
$x = 1 & 5; // 1
$x = 3 & 5; // 1
$x = 5 & 5; // 5
$x = 7 & 5; // 5
$x = 10 & 5; // 0 
$x = 12 & 5; // 4

[ Voor 120% gewijzigd door danslo op 23-12-2009 12:50 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:37

Creepy

Tactical Espionage Splatterer

Zet die integers om naar een binaire representatie en je zult zien dat het allemaal vrij logisch is, mits je weet wat een bitwise AND en een bitwise Xor doen (maar is dat erg simpel op te zoeken ;) )
code:
1
2
3
1 AND 5 = 1
is hetzelfde als:
0001 AND 0101 = 0001

[ Voor 8% gewijzigd door Creepy op 23-12-2009 12:44 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Kale Kiwi
  • Registratie: Juli 2008
  • Laatst online: 14-09 18:25
Wow programmeer ik toch al redelijk lang maar heb dit nooit geweten, bedankt voor het antwoord en ook zeker bedankt voor jullie uitleg! Weet ik tenminste niet alleen dat het werkt maar ook waaorm :) !

Heel erg bedankt!

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Pas je bij het herschrijven in PHP wel heel goed op dat je de bitwise operators (& voor and en ^ voor xor) gebruikt en niet de logical operators (respectievelijk && of and en xor)? :) Dat kan nog leuke bugjes opleveren namelijk. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 08:23

Reptile209

- gers -

cls schreef op woensdag 23 december 2009 @ 12:36:
[...]
XOR is bijna hetzelfde, alleen dan moet alleen één van de bits een 1 zijn, bijvoorbeeld:
code:
1
2
3
10101010 <- Waarde A
01010101 <- Waarde B
11111111 <- A XOR B

[..]
Wel effe een goed (=compleet) voorbeeld geven voor het eXclusive-deel (nu lijkt het een gewone OR):
code:
1
2
3
10101011 <- Waarde A
01010101 <- Waarde B
11111110 <- A XOR B

1 XOR 1 = 0, terwijl 1 OR 1 = 1

Zo scherp als een voetbal!


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:04

.oisyn

Moderator Devschuur®

Demotivational Speaker

lol @ sig. Hij werkt wel :D

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1