_UNSIGNED - mkilgore/QB64pe GitHub Wiki
_UNSIGNED defines a numerical value as being only positive.
- Datatype can be any of the following: INTEGER, LONG, _BIT, _BYTE, _INTEGER64, _OFFSET
- SINGLE, DOUBLE and _FLOAT variable types cannot be _UNSIGNED.
- _UNSIGNED can be used in a _DEFINE statement to set undefined variable name first letters as all positive-only values.
- Can also be used in DIM statements or subprocedure parameter definitions following AS.
- _UNSIGNED allows larger positive numerical variable value limits than signed ones.
- The unsigned variable type suffix used is the tilde (~), right before the number's own type suffix: variableName~&
00000001 - unsigned & signed are both 1 01111111 - unsigned & signed are both 127 11111111 - unsigned is 255 but signed is -1 11111110 - unsigned is 254 but signed is -2 11111101 - unsigned is 253 but signed is -3 |
Example 1: In QB64, when a signed INTEGER value exceeds 32767, the value may become a negative value:
'' '' i% = 38000 PRINT i% '' '' |
-27536 |
- Explanation: Use an _UNSIGNED INTEGER or a ~% variable type suffix for only positive integer values up to 65535.
'' '' i~% = 70000 PRINT i~% '' '' |
4464 |
- Explanation: In QB64 an unsigned integer value of 65536 would be 0 with values increasing by the value minus 65536.
'' '' DIM n AS _UNSIGNED INTEGER DIM pn AS _UNSIGNED INTEGER LOCATE 3, 6: PRINT "Press Esc to exit loop" FOR...NEXT n = 1 TO 80000 _LIMIT 10000 ' 6.5 second loop LOCATE 12, 37: PRINT n ' display current value IF...THEN n > 0 THEN pn = n ' find highest value IF...THEN n = 0 THEN Count = Count + 1: LOCATE 14, 37: PRINT "Count:"; Count; "Max:"; pn IF...THEN INP(&H60) = 1 THEN EXIT ' escape key exit NEXT n END '' '' |
Press Esc to exit loop 65462 Count: 13 Max: 65535 |
Explanation: The maximum value can only be 65535 (32767 + 32768) so the FOR loop repeats itself. Remove the _UNSIGNED parts and run it again.
- DECLARE, SUB, FUNCTION
- DIM, _DEFINE
- DEFSTR, DEFLNG, DEFINT, DEFSNG, DEFDBL
- INTEGER, LONG, _INTEGER64
- ABS, SGN
- Variable Types
Navigation:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page