Please use [root:Netnumber] in new code - which is not restricted to
big endian
#
exception Cannot_represent
of string
#
val mk_int4 : char * char * char * char
-> int4
#
val mk_int8 : char * char * char * char * char * char * char * char
-> int8
#
val mk_uint4 : char * char * char * char
-> uint4
#
val mk_uint8 : char * char * char * char * char * char * char * char
-> uint8
mk_
<t> create integer values from character tuples. In these tuples
the MSB is the first component and the LSB the last.
#
val dest_int4 :
int4 -> char * char * char * char
#
val dest_int8 :
int8 -> char * char * char * char * char * char * char * char
#
val dest_uint4 :
uint4 -> char * char * char * char
#
val dest_uint8 :
uint8 -> char * char * char * char * char * char * char * char
dest_
<t> destroy integer values and returns the corresponding char
tuples.
#
val read_int4 : string
-> int
-> int4
#
val read_int8 : string
-> int
-> int8
#
val read_uint4 : string
-> int
-> uint4
#
val read_uint8 : string
-> int
-> uint8
read_
<t> create integer values from the characters found at a
certain position in the string. Raises Out_of_range
if the position
is bad. Network byte order is assumed.
#
val read_int4_unsafe : string
-> int
-> int4
#
val read_int8_unsafe : string
-> int
-> int8
#
val read_uint4_unsafe : string
-> int
-> uint4
#
val read_uint8_unsafe : string
-> int
-> uint8
#
val write_int4 : string
-> int
-> int4 -> unit
#
val write_int8 : string
-> int
-> int8 -> unit
#
val write_uint4 : string
-> int
-> uint4 -> unit
#
val write_uint8 : string
-> int
-> uint8 -> unit
write_
<t> copies the characters corresponding to the integer values
into the string at the given positions. Raises Out_of_range
if the
position is bad. Network byte order is assumed.
#
val write_int4_unsafe : string
-> int
-> int4 -> unit
#
val write_int8_unsafe : string
-> int
-> int8 -> unit
#
val write_uint4_unsafe : string
-> int
-> uint4 -> unit
#
val write_uint8_unsafe : string
-> int
-> uint8 -> unit
write_
<t>_unsafe
: Same, but no index check.
#
val int4_as_string :
int4 -> string
#
val int8_as_string :
int8 -> string
#
val uint4_as_string :
uint4 -> string
#
val uint8_as_string :
uint8 -> string
<t>_as_string
: Returns the corresponding string in network byte
order for an integer value
Conversions from int to (u)int and vice versa.
On 32-bit computers, the type int
can hold 31-bit signed integers
(including the sign, i.e. one bit cannot be used).
On 64-bit computers, the type int
can hold 63-bit signed integers
(including the sign, i.e. one bit cannot be used).
The int_of_xxx
functions raise Cannot_represent
if the number to
convert is too big (or too small) to be represented as int
. Note
that this depends on the word size of your architecture.
#
val int_of_int4 :
int4 -> int
#
val int_of_uint4 :
uint4 -> int
#
val int_of_int8 :
int8 -> int
#
val int_of_uint8 :
uint8 -> int
#
val int4_of_int : int
-> int4
#
val uint4_of_int : int
-> uint4
#
val int8_of_int : int
-> int8
#
val uint8_of_int : int
-> uint8
Since O'Caml 3.00, there are the types int32
and int64
representing
32-bit and 64-bit signed integers on every architecture.
#
val int32_of_int4 :
int4 -> int32
#
val int32_of_uint4 :
uint4 -> int32
#
val int32_of_int8 :
int8 -> int32
#
val int32_of_uint8 :
uint8 -> int32
#
val int4_of_int32 : int32
-> int4
#
val uint4_of_int32 : int32
-> uint4
#
val int8_of_int32 : int32
-> int8
#
val uint8_of_int32 : int32
-> uint8
#
val int64_of_int4 :
int4 -> int64
#
val int64_of_uint4 :
uint4 -> int64
#
val int64_of_int8 :
int8 -> int64
#
val int64_of_uint8 :
uint8 -> int64
#
val int4_of_int64 : int64
-> int4
#
val uint4_of_int64 : int64
-> uint4
#
val int8_of_int64 : int64
-> int8
#
val uint8_of_int64 : int64
-> uint8
Casts from uint4
/uint8
to int32
/int64
. Here, the sign is ignored and
simply considered as a bit.
#
val logical_uint4_of_int32 : int32
-> uint4
#
val logical_int32_of_uint4 :
uint4 -> int32
#
val logical_uint8_of_int64 : int64
-> uint8
#
val logical_int64_of_uint8 :
uint8 -> int64
#
val lt_uint4 :
uint4 -> uint4 -> bool
lt_uint4
is true iff the first value is less than the second value
as unsigned int
Floating-point stuff. The following functions all assume that the
system represents fp number in an IEEE-compliant way.
#
val fp4_of_fp8 :
fp8 -> fp4
Note fp4_of_fp8
: This conversion is not exact. It is quite
normal that precision is lost. Numbers too small or too large
for fp4 are converted to the "infinity" value.
#
val float_of_fp4 :
fp4 -> float
#
val float_of_fp8 :
fp8 -> float
#
val fp4_of_float : float
-> fp4
#
val fp8_of_float : float
-> fp8
Note fp4_of_float: The same problems as in fp4_of_fp8 may arise
Floating point to bit string and back:
#
val mk_fp4 : char * char * char * char
-> fp4
#
val mk_fp8 : char * char * char * char * char * char * char * char
-> fp8
#
val dest_fp4 :
fp4 -> char * char * char * char
#
val dest_fp8 :
fp8 -> char * char * char * char * char * char * char * char
#
val fp4_as_string :
fp4 -> string
#
val fp8_as_string :
fp8 -> string
#
val read_fp4 : string
-> int
-> fp4
#
val read_fp8 : string
-> int
-> fp8