INTEGER

From QB64 Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

INTEGER is a 2-byte number type definition that can hold whole numerical values.


Syntax

DIM variable AS INTEGER


  • Integers do not use decimal point values but will round those off to the nearest even whole number.
  • QBasic integer values can range from -32768 to 32767 without an "overflow" error.
  • For larger integer values use the LONG integer type.
  • QB64 INTEGER values greater than 32767 become negative signed values instead of throwing an "overflow" error, as the top bit designates a negative value. See example 1 below.
  • QB64 _UNSIGNED integers can range from 0 to 65535.
  • QB64 _UNSIGNED _INTEGER64 values range from 0 to 18446744073709551615
  • Many graphic programs require INTEGER arrays.
  • Variable type suffix is % or ~% for _UNSIGNED. Suffix can also be placed after a literal or hexadecimal numerical value.
  • LONG integers use the & suffix and _INTEGER64 use the && suffix.
  • Values can be converted to 2 byte ASCII string values using MKI$ and back with CVI.
  • When a variable has not been defined or has no type suffix, the value defaults to SINGLE.
  • Warning: QBasic keyword names cannot be used as numerical variable names with or without the type suffix.


Examples

Example 1: QBasic signed integers were limited from -32768 to 32767, but could not exceed 32767 or it would error:

DO: _LIMIT 2000 i% = i% + 1 PRINT i% LOOP UNTIL i% = 0

Explanation: In QB64 the count will go to 32767, then count up from -32768 to 0 before repeating the process without error.


Example 2: When a signed QB64 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.


Example 3: In QB64 _UNSIGNED INTEGER values greater than 65535 cycle over again from zero:

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.


See also



Navigation:
Keyword Reference - Alphabetical
Keyword Reference - By Usage
Main Wiki Page