mirror of
https://github.com/QB64Official/qb64.git
synced 2024-09-28 11:17:47 +00:00
42 lines
1.9 KiB
Text
42 lines
1.9 KiB
Text
The [[CVL]] function decodes a 4-byte [[STRING]] generated by [[MKL$]] (or read from a file) to [[LONG]] numeric values.
|
|
|
|
|
|
{{PageSyntax}}
|
|
: {{Parameter|result&}} = [[CVL]]({{Parameter|stringData$}})
|
|
|
|
|
|
{{PageDescription}}
|
|
* ''CV'' functions ([[CVD]], [[CVS]], [[CVI]], [[CVL]], [[CVDMBF]], [[CVSMBF]]) are used to convert values encoded by ''MK$'' functions ([[MKD$]], [[MKS$]], [[MKI$]], [[MKL$]], [[MKDMBF$]], [[MKSMBF$]]).
|
|
* '''QB64''' has [[_CV]] and [[_MK$]] functions which can also deal with extended [[Data types|data types]].
|
|
* [[LONG]] values can range from -2147483648 to 2147483647.
|
|
* Doesn't return [[_UNSIGNED]] values.
|
|
|
|
|
|
{{PageExamples}}
|
|
''Example 1: 4 byte [[ASCII]] character strings show how CVL multipliers convert [[MKL$]] values into a 4 byte [[LONG]] value.
|
|
{{CodeStart}} '' ''
|
|
{{Cl|PRINT}} {{Cl|CVL}}({{Cl|CHR$}}(1) + {{Cl|STRING$}}(3, 0)) '{{Cl|ASC}}(CHR$(1)) * 1 = 1
|
|
{{Cl|PRINT}} {{Cl|CVL}}({{Cl|CHR$}}(0) + {{Cl|CHR$}}(1) + {{Cl|STRING$}}(2, 0)) '{{Cl|ASC}}(CHR$(1)) * 256 = 256
|
|
{{Cl|PRINT}} {{Cl|CVL}}({{Cl|STRING$}}(2, 0) + {{Cl|CHR$}}(1) + {{Cl|CHR$}}(0)) '{{Cl|ASC}}(CHR$(1)) * 256 * 256 = 65536
|
|
{{Cl|PRINT}} {{Cl|CVL}}({{Cl|STRING$}}(3, 0) + {{Cl|CHR$}}(1)) '{{Cl|ASC}}(CHR$(1)) * 256 * 256 * 256 = 16777216 '' ''
|
|
{{CodeEnd}}
|
|
|
|
|
|
''Example 2:''
|
|
{{CodeStart}} '' ''
|
|
{{Cl|FIELD}} #1, 4 {{Cl|AS}} N$, 12 {{Cl|AS}} B$...
|
|
{{Cl|GET}} #1
|
|
Y& = {{Cl|CVL}}(N$) '' ''
|
|
{{CodeEnd}}
|
|
:''Explanation:'' Reads a field from file #1, and converts the first four bytes (N$) into a long integer value assigned to the variable Y&.
|
|
|
|
:Since the representation of a long number can use up to 10 ASCII characters (ten bytes), writing to a file using [[MKL$]] conversion, and then reading back with the [[CVL]] conversion can save up to 6 bytes of storage space.
|
|
|
|
|
|
{{PageSeeAlso}}
|
|
* [[MKD$]], [[MKI$]], [[MKS$]], [[MKL$]], [[MKDMBF$]], [[MKSMBF$]]
|
|
* [[CVI]], [[CVS]], [[CVD]], [[CVDMBF]], [[CVSMBF]]
|
|
* [[_CV]], [[_MK$]]
|
|
|
|
|
|
{{PageNavigation}}
|