#### 2.1.2.9 Conversion operators ¶

The following instructions convert between numerical values and their character representations.

`NUM` ¶

  Convert rAX, assumed to contain a character representation of a number, to its numerical value and store it in rA. OPCODE = 5, MOD = 0.

`CHAR` ¶

  Convert the number stored in rA to a character representation and store it in rAX. OPCODE = 5, MOD = 1.

Digits are represented in MIX by the range of values 30-39 (digits 0-9). Thus, if the contents of ‘`rA`’ and ‘`rX`’ are, for instance,

    [rA] = + 30 30 31 32 33
    [rX] = + 31 35 39 30 34

the represented number is 0012315904, and ‘`NUM`’ will store this value in ‘`rA`’ (i.e., we end up with ‘`[rA]`’ = + 0 46 62 52 0 = 12315904).

If any byte in ‘`rA`’ or ‘`rB`’ does not belong to the range 30-39, it is interpreted by ‘`NUM`’ as the digit obtained by taking its value modulo 10. E.g. values 0, 10, 20, 30, 40, 50, 60 all represent the digit 0; 2, 12, 22, etc. represent the digit 2, and so on. For instance, the number 0012315904 mentioned above could also be represented as

    [rA] = + 10 40 31 52 23
    [rX] = + 11 35 49 20 54

‘`CHAR`’ performs the inverse operation, using only the values 30 to 39 for representing digits 0-9.