MKI$: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 17: Line 17:
''Example:'' How MKI$ creates a two byte string integer value to save file space.
''Example:'' How MKI$ creates a two byte string integer value to save file space.
{{CodeStart}}
{{CodeStart}}
{{Cl|SCREEN (statement)|SCREEN}} 12    '_PRINTSTRING requires a graphic screen mode
{{Cl|SCREEN}} 12    '_PRINTSTRING requires a graphic screen mode
DO
DO
   {{Cl|COLOR}} 14: {{Cl|LOCATE}} 13, 20: {{Cl|INPUT}} "Enter an Integer from 1 to 32767(0 quits): ", number%
   {{Cl|COLOR}} 14: {{Cl|LOCATE}} 13, 20: {{Cl|INPUT}} "Enter an Integer from 1 to 32767(0 quits): ", number%
Line 34: Line 34:
{{Cl|END}}
{{Cl|END}}
{{CodeEnd}}
{{CodeEnd}}
{{small|Code by Ted Weissgerber}}
{{Small|Code by Ted Weissgerber}}
:''Explanation:'' INPUT in QB64 limits integer entries to 32767 maximum. MOD 256 finds the part of a value from 0 to 255 while the second value is the number of times that 256 can go into the value. [[_PRINTSTRING]] can print all of the [[ASCII]] characters.
:''Explanation:'' INPUT in QB64 limits integer entries to 32767 maximum. MOD 256 finds the part of a value from 0 to 255 while the second value is the number of times that 256 can go into the value. [[_PRINTSTRING]] can print all of the [[ASCII]] characters.



Latest revision as of 22:37, 11 February 2023

The MKI$ function encodes an INTEGER numerical value into a 2-byte ASCII STRING value.


Syntax

result$ = MKI$(integerVariableOrLiteral%)


Description

  • integerVariableOrLiteral% is converted to two ASCII characters.
  • INTEGER values can range from -32768 to 32767.
  • MKI$ string values can be converted back to numerical INTEGER values using CVI.
  • The function takes up less byte space in a file than using the text numerical value when the value is over 2 digits.
  • When a variable value is used with PUT a numerical value is converted automatically in RANDOM and BINARY files.


Examples

Example: How MKI$ creates a two byte string integer value to save file space.

SCREEN 12    '_PRINTSTRING requires a graphic screen mode
DO
  COLOR 14: LOCATE 13, 20: INPUT "Enter an Integer from 1 to 32767(0 quits): ", number%
  IF number% < 1 THEN EXIT DO
  CLS
  A$ = CHR$(number% MOD 256)   'first digit(0 to 255)
  B$ = CHR$(number% \ 256)     'second digit(0 to 127)

  MKIvalue$ = A$ + B$
  Q$ = CHR$(34)
  strng$ = "CHR$(" + LTRIM$(STR$(number% MOD 256)) + ") + CHR$(" + LTRIM$(STR$(number% \ 256)) + ")"
  COLOR 11
  _PRINTSTRING (222, 252), STR$(number%) + " = " + strng$
  _PRINTSTRING (252, 300), "MKI$ value = " + Q$ + MKIvalue$ + Q$ 'print ASCII characters
LOOP
END
Code by Ted Weissgerber
Explanation: INPUT in QB64 limits integer entries to 32767 maximum. MOD 256 finds the part of a value from 0 to 255 while the second value is the number of times that 256 can go into the value. _PRINTSTRING can print all of the ASCII characters.


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link