$itor purpose + question

The LRM writes:

real $itor ( int_val )
$itor converts integer values to real values (for example, 123 becomes 123.0).

What is meant with ‘integer values’ here? Does it refer to the ‘integer’ datatype (32 bits) or more general any integral type?
The following trial with 50 bits suggests that $itor is not limited to 32 bits integers.

    
    real r;
    bit [50-1:0] b50;
    b50=(1<<49)+1;
    $display("%d (%b)",b50,b50);    
    r=$itor(b50);
    $display("%f",r);

gives

562949953421313 (10000000000000000000000000000000000000000000000001)

562949953421313.000000

A more general question is what is the purpose of $itor? How does it differ from just assigning or static casting an integral to a real?

Many of the conversion system function are left in the SystemVerilog standard for backward compatibility with Verilog, before explicit casting was available. Any differences between the cast and the system function are noted. For example, $rtoi truncates, whereas a cast rounds.