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. |