Здравствуйте, подобная тему уже обсуждалась год назад, но у меня другой вопрос. В FAQ'е есть программа перевода из одной с\с в другую, но та программа к сожалению переводит из десятичной в двоичную с\с только интервал чисел 1..1023. Я написал свою которая может переводить из десятичной в двоичную с\с интервал чисел 1..2047.... а дальше идёт чушь :
при переводе 2047 получается 11111111111, а при переводе 2048 --> 100000000010
2049 --> 100000000010
2050 --> 100000000020
2051 --> 100000000020
Program proga;
var x,st: longint;
b: real;
begin
read(x);
st:=0;
b:=0;
Repeat
b:=b+((x mod 2)*exp(st*ln(10)));
st:=st+1;
x:=x div 2;
Until x=0;
writeln(b:2:0);
end.
Поменяй тип переменной b c real на extended, там мантисса побольше.
http://forum.pascal.net.ru/index.php?s=&showtopic=3895&view=findpost&p=34459
http://forum.pascal.net.ru/index.php?s=&showtopic=5854&view=findpost&p=44425
Молодец Malice! Спасибо большое! Интервал чисел увеличился как минимум в 2 раза Мне этого хватит))
Вот, что находилось по моей ссылке:
И тебе спасибо, я видел, только не помогло =( Я написал {$E+, $N+} а оно распозналось просто как коментарий и всё =(
--------------------------
Ой, извиняюсь, всё даже намного лучше, просто нада было написать {$E+,N+}, а не {$E+,$N+}
Спасиб тебе))
Надо так:
{$E+} {$N+}
{$E+} {$N+}
Народ, а как можно записывать в двоичной системе действительное счисления число, имеющее не более 50 цифр в десятичной записи? Используя Динамические массивы. чего то я не нашел... помогите пожалуста новичку