Talk:! (Operator)/@comment-5106053-20140801152911/@comment-5334617-20140801162731

I know for sure BBC Basic uses -1 for true. All languages which have one NOT operator to perform both bitwise and logical negation must use -1 for true. Commodore Basic, HP Basic, FreeBasic, and QBASIC are among them. Where TRUE is 1, you cannot have one operator perform both functions. It's more economical, more elegant, to have just one operator working in both roles.

True/False is a value that can be expressed in a single bit; a single bit interpreted as a signed integer has either the value 0 or the value -1. (If the single bit is interpreted as an unsigned integer, it has the either the value 0 or the value 1, but for BASIC, signed is the default for all numerical values.)

An example where using -1 as TRUE would be nice came up recently on this wiki:

http://petitcomputer.wikia.com/wiki/Thread:33208

If TRUE had been -1, instead of 1, the statement in that thread would have worked like Mystman12 would have expected it to.