1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-04 04:50:22 +00:00
QB64-PE/internal/help/INTEGER_1111111.txt
Roland Heyder aeb9c0668b Updates help files for use with new Wiki parser (2nd try)
Note: Many files were removed (not yet existing/empty pages). The parser will try to download them on demand and will auto-generate text for missing pages (eg. most _gl pages).
2022-05-21 00:18:31 +02:00

65 lines
2.6 KiB
Plaintext

{{QBDLDATE:05-20-2022}}
{{QBDLTIME:23:13:51}}
[[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 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.'''
{{PageExamples}}
''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.
{{PageSeeAlso}}
* [[DIM]], [[DEFINT]]
* [[LONG]], [[_INTEGER64]]
* [[LEN]], [[MKI$]], [[CVI]]
* [[_DEFINE]], [[_UNSIGNED]]
* [[Variable Types]]
* [[&B]] (binary), [[&O]] (octal), [[&H]] (hexadecimal)
* [[\|Integer Division]], [[MOD]] (Integer remainder division)
{{PageNavigation}}