Difference between revisions of "MKI$"

From QB64 Wiki
Jump to navigation Jump to search
imported>SMcNeill
(style guidelines)
imported>SMcNeill
m (-)
 
Line 3: Line 3:
  
 
{{PageSyntax}}
 
{{PageSyntax}}
: {{Parameter|result$}} = [[MKI$]]({{Parameter|integerVariableOrLiteral#}})
+
: {{Parameter|result$}} = [[MKI$]]({{Parameter|integerVariableOrLiteral%}})
  
  
 
{{PageDescription}}
 
{{PageDescription}}
* {{Parameter|integerVariableOrLiteral#}} is converted to two ASCII characters.
+
* {{Parameter|integerVariableOrLiteral%}} is converted to two ASCII characters.
 
* [[INTEGER]] values can range from -32768 to 32767.
 
* [[INTEGER]] values can range from -32768 to 32767.
 
* MKI$ string values can be converted back to numerical INTEGER values using [[CVI]].
 
* MKI$ string values can be converted back to numerical INTEGER values using [[CVI]].

Latest revision as of 13:01, 12 October 2017

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:
Keyword Reference - Alphabetical
Keyword Reference - By Usage
Main Wiki Page