1

I am working on GwBasic and want to know how 'CVI("aa")' returns '24929' is that converts each char to ASCII but code of "aa" is 9797.

Nauman Umer
  • 1,006
  • 1
  • 11
  • 21

1 Answers1

3

CVI converts between a GW-BASIC integer and its internal representation in bytes. That internal representation is a 16-bit little-endian signed integer, so that the value you find is the same as ASC("a") + 256*ASC("a"), which is 97 + 256*97, which is 24929.

MKI$ is the opposite operation of CVI, so that MKI$(24929) returns the string "aa".

The 'byte reversal' is a consequence of the little endianness of GW-BASIC's internal representation of integers: the leftmost byte of the representation is the least significant byte, whereas in hexadecimal notation you would write the most significant byte on the left.

jochietoch
  • 176
  • 1
  • 3