Is someone able to clarify as to how bitwise operators are implemented
in MPL?
For example: the expression "a := b xor c;" currently returns "Unknown identifier: xor"' during compilation.
MPL is supposed to support your typical bitwise operators (keywords and/or/xor/shl/shr) but clearly something is not working.
MPL is supposed to support your typical bitwise operators (keywords and/or/xor/shl/shr) but clearly something is not working.
There are also three functions that allow you to check, set, and toggle bits in any integer type that MPL supports which can be used for now
until I figure out what happened.
This is in a WHATSNEW from way back in 2011 (The number you pass is the actual bit you want to check, set or toggle ie 1-32)
+ New MPL function "BitCheck" accepts a bit position and checks it against an integer, returning true or false if the bit is on. So for example in the Records, the third bit in UserFlags is UserDeleted:
GetThisUser
If BitCheck(3, UserFlags) Then WriteLn('User is marked deleted');
Note that this was implemented before actual bitwise math, which also
made it into this version. Keep reading! :)
+ New MPL function "BitToggle" accepts a bit position and an integer and
toggles the bit.
GetThisUser
BitToggle(3, UserFlags); // undeletes if they are deleted or
deletes if // they are not deleted.
+ New MPL function "BitSet" accepts a bit position and an integer and sets the bit ON/OFF based on a boolean:
GetThisUser
BitSet(3, UserFlags, True); // user is marked as deleted
But...............................................
.......................... does it have cowbell.
Sysop: | Coz |
---|---|
Location: | Anoka, MN |
Users: | 2 |
Nodes: | 4 (0 / 4) |
Uptime: | 155:59:01 |
Calls: | 166 |
Files: | 5,389 |
Messages: | 223,385 |