What does ~ do in Blitz Max?

BlitzMax Forums/BlitzMax Beginners Area/What does ~ do in Blitz Max?

I assume its some kind of logical operator but I'm not sure which one. Also what other operators are there apart from this one?

Thank you!

Check in your IDE : Help / Language / Expressions.
~ is Bitwise complement
Double meaning of ~

Check in your IDE : Help / Language / Expressions.
~ is Bitwise complement

Also used for escape codes, i.e:
Print "~qHello~q"
"Hello"


More in Language Reference>>Literals.

oh - ok thanks. It says its XOR. Ha ha I had a very geeky friend who used to say 'Do you want to go for lunch exclusive-or the pub?'

Yes I know it was sad, but he reckoned it stopped you choosing both.

To keep you from going to the pub for lunch? He only wants to drink if you go the the pub?

I do Not know what Xor does.

@markcw:
or:
0 or 0 = 0
0 or 1 = 1
1 or 0 = 1
1 or 1 = 1

and:
0 and 0 = 0
0 and 1 = 0
1 and 0 = 0
1 and 1 = 1

Xor:
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0

Means 'A or B bot nor A and B' more or less... It can be applied to binary calculations but also to logical calculations. It means "exclusive or"

I do Not know what Xor does.
To clarify what Ziggy said in laymen's terms, imagine you have a number represented in binary:

%10101010

You can XOR that with another 8-bit pattern, for example, %00001111. The zeros mean that the corresponding bits of the number will not be touched. Anywhere there is a zero, will be inverted.

So:

%10101010 XOR %00001111, will become %10100101 (first four bits changed).

%10101010 XOR %00000001, will become %10101011 (only the first bit changed).

%10101010 XOR %11111111, will become %01010101 (all bits changed).

See?

You can use XOR for basic encryption. If you have Chr(97) (lower case 'a'):

97 as binary is %01100001.

Think of any old bit pattern - doesn't matter what. Let's use %00101101.

%01100001 XOR %00101101 = %01001100 = Chr(76) = upper case 'L'.

Performing the same operation on %01001100, with the same bit pattern (%00101101), returns the byte to its original value of 97.