Диапазон чисел, которые можно записать данным зависит от количества бит, отведённых для представления мантиссы и показателя. На обычной 32-битной вычислительной машине, использующей двойную точность (64 бита), мантисса составляет 1 бит знак + 52 бита, показатель — 1 бит знак + 10 бит. Таким образом получаем диапазон точности примерно от 4,94·10−324 до 1.79·10308 (от 2−52 × 2−1022 до ~1 × 21024). Пара значений показателя зарезервирована для обеспечения возможности представления специальных чисел. К ним относятся значенияNaN (Not a Number, не число) и +/-INF (Infinity, бесконечность), получающихся в результате операций типа деления на ноль нуля, положительных и отрицательных чисел. Также сюда попадают денормализованные числа, у которых мантисса меньше единицы. В специализированных устройствах (например GPU) поддержка специальных чисел часто отсутствует. Существуют программные пакеты, в которых объём памяти выделенный под мантиссу и показатель задаётся программно, и ограничивается лишь объёмом доступной памяти ЭВМ.
uses
crt;
var
cs1,cs2,res,change:integer;
TD:string;
function FromDec(n,r:longint):string;
var
s:String;
const
digit:string[16]='0123456789ABCDEF';
begin
s:='';
repeat
s:=digit[(n mod r)+1]+s;
n:=n div r;
until n=0;
FromDec:=s;
end;
function ToDec(n:string;r:longint):longint;
var
m,i:longint;
const
digit:string[16]='0123456789ABCDEF';
begin
m:=0;
while n[1]='0' do
delete(n,1,1);
for i:=1 to length(n) do
m:=m*r+pos(n[i],digit)-1;
ToDec:=m;
end;
begin
writeln('Введите из какой CC:');
repeat
readln(cs1);
until
(cs1>=2) and (cs1<=36);
writeln('Введите число в соответствии с CC:');
readln(TD);
writeln('Введите в какую CC:');
repeat
readln(cs2);
until
(cs2>=2) and (cs2<=36);
writeln('Перевод из ',cs1,' CC --> ',cs2,' CC:');
writeln(FromDec(ToDec(TD,cs1),cs2));
end.