2015-08-02 12:12:44 +00:00
|
|
|
'''INTEGER''' is a 2 byte number type definition that can hold whole numerical values.
|
|
|
|
|
|
|
|
|
|
|
|
{{PageSyntax}}
|
|
|
|
:: 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 Qbasic can use the [[LONG]] Integer values.
|
2016-03-18 11:36:04 +00:00
|
|
|
* '''QB64''' INTEGER values greater than 32767 may become negative signed values as the top bit designates a negative value.
|
2015-08-02 12:12:44 +00:00
|
|
|
* '''QB64''' [[_UNSIGNED]] Integers can range from 0 to 65535.
|
|
|
|
* '''QB64''' _UNSIGNED [[_INTEGER64]] values range from 0 to 18446744073709551615
|
|
|
|
* Many Graphic programs require INTEGER arrays or DEFINT.
|
|
|
|
* 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 assigned 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!'''
|
|
|
|
|
|
|
|
|
2016-03-18 11:36:04 +00:00
|
|
|
''Example 1:'' Qbasic signed integers were limited from -32768 to 32767, but could not exceed 32767 or it would error:
|
|
|
|
{{CodeStart}} '' ''
|
|
|
|
{{Cl|DO...LOOP|DO}}: {{Cl|_LIMIT}} 2000
|
|
|
|
i% = i% + 1
|
|
|
|
{{Cl|PRINT}} i%
|
|
|
|
{{Cl|LOOP}} {{Cl|UNTIL}} i% = 0 '' ''
|
|
|
|
{{CodeEnd}}
|
|
|
|
:''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:
|
|
|
|
{{CodeStart}} '' ''
|
|
|
|
i% = 38000
|
|
|
|
{{Cl|PRINT}} i% '' ''
|
|
|
|
{{CodeEnd}}{{OutputStart}}-27536
|
|
|
|
{{OutputEnd}}
|
|
|
|
:''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:
|
|
|
|
{{CodeStart}} '' ''
|
|
|
|
i~% = 70000
|
|
|
|
{{Cl|PRINT}} i~% '' ''
|
|
|
|
{{CodeEnd}}{{OutputStart}} 4464
|
|
|
|
{{OutputEnd}}
|
|
|
|
:''Explanation:'' In QB64 an unsigned integer value of 65536 would be 0 with values increasing by the value minus 65536.
|
|
|
|
|
|
|
|
|
2015-08-02 12:12:44 +00:00
|
|
|
''See also:''
|
|
|
|
* [[DIM]], [[DEFINT]]
|
|
|
|
* [[LONG]], [[_INTEGER64]]
|
|
|
|
* [[LEN]], [[MKI$]], [[CVI]]
|
2016-03-18 11:36:04 +00:00
|
|
|
* [[_DEFINE]], [[_UNSIGNED]]
|
2015-08-02 12:12:44 +00:00
|
|
|
* [[Variable Types]]
|
|
|
|
* [[&B]] (binary), [[&O]] (octal), [[&H]] (hexadecimal)
|
|
|
|
* [[\|Integer Division]], [[MOD]] (Integer remainder division)
|
|
|
|
|
|
|
|
|
|
|
|
{{PageNavigation}}
|