Форум: "Прочее";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
Внизa+b Найти похожие ветки
← →
Dbn (2006-08-30 11:21) [0]Такой вопрос. Почему в Delphi, при создании console application, нижеприведённая программа выдаст правильный ответ,
а в Turbo Pascale, ответ будет совсем не тот, даже с отрицательным знаком? Известно что a,b - переменные типа integer,
поэтому результат не может поместиться, а в delphi всё нормально.
var
a,b: integer;
begin
a:=30101;
b:=29752;
writeln(a+b);
end.
← →
tButton © (2006-08-30 11:25) [1]в дельфи integer 8 байт
в паскале - 4
выход за границы
у тебя получается 1 в 15м бите и вуаля "минус"
← →
Ega23 © (2006-08-30 11:25) [2]Integer в TP имеет разверность 2 байта, в Delphi начиная с 2 - 4 байта.
Дальше - читать про особенности работы с отрицательными числами.
Примечание: если объявишь a,b:word - получишь интересный результат.
Вот и весь ответ.
← →
Плохиш © (2006-08-30 11:25) [3]В турбопаскале integer 16 бит.
← →
Ega23 © (2006-08-30 11:26) [4]разверность=размерность
← →
Алхимик © (2006-08-30 11:26) [5]Тип integer в Delphi:
Type Range Format
Integer -2147483648..2147483647 signed 32-bit
← →
tButton © (2006-08-30 11:26) [6]оп. да =) перепутал малясь =)
← →
Palladin © (2006-08-30 11:30) [7]Потому что в старом паскале размер Integer 16 бит (в отличии от Delphi где он 32битный), то бишь Word со знаком, соответственно при сложении этих двух чисел и получается отрицательное...
← →
homm © (2006-08-30 11:56) [8]
> оп. да =) перепутал малясь =)
Не молись, когда посты пишеш :)
← →
tButton © (2006-08-30 11:59) [9]
> homm © (30.08.06 11:56) [8]
просто последнюю неделю среднесуточный uptime ~75-80% =)
плюс сегодня за день пропустил через мозг ~250Кб текста =)
не ну я же про 15й бит правильно вспомнил =)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c