# 3 The numberio Library

## 3.1 Based integers and reals

Numberio is a library for reading and writing numerals (integers, based integers, radix integers, and reals). The format of these numerals corresponds directly to the format of these numerals as defined by the BETA language (except for radix integers that are not supported by the BETA language). Numberio also contains a general getNumber operation, that is able to read any numeral, and return the proper value read.

Grammar for getNumber operation

The following grammar defines the exact syntax of the numerals:

 ```N ::= D+ int 314 | D+ '.' D+ real 3.14 | D+ '.' D+ 'E' E real 3.14E8 real 3.14E+8 real 3.14E-8 | D+ 'E' E real 3E8 real 3E+8 real 3E-8 | D+ 'X' (D|L)+ based 2X0101 based 8x0845 based 16xAF12 | (D|L)+ radix AF12 D ::= '0' | ... | '9' L ::= 'A' | ... | 'Z' E ::= D+ | '+' D+ | '-' D+```

Integer examples:

 `10 0 123`

A based integer has the form <base>X<number>. Examples are:

 ```2X101 base=2, number= 4*1 + 2*0 + 1*1 = 5 8X12 base=8, number= 8*1 + 1*2 = 10 16x2A1 base=16, number= 256*2 + 16*10 + 1*1 = 673 0x2A1 base=16, i.e. base=0 is interpreted as base=16```

Examples of reals are:

 `3.14 3.14E-8 3E+8`

All letters may be in lower or upper case.

The various read and write operations contain several facilities for controlling the read and write. Please consult the interface description later for details.

 Basic Libraries - Reference Manual © 1990-2002 Mjølner Informatics [Modified: Friday January 4th 2002 at 13:10]