Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.17;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.038 c
2-1156448729
Анрей
2006-08-24 23:45
2006.09.17
Drug n Drop в Дельфи


3-1152523477
alexvan
2006-07-10 13:24
2006.09.17
Rave 6.5 и Interbase


15-1156100676
Некто
2006-08-20 23:04
2006.09.17
Не удаляется файл.


2-1156593970
learner
2006-08-26 16:06
2006.09.17
Перерисовка фона в OpenGL


2-1156452053
ronyn
2006-08-25 00:40
2006.09.17
Как создать пустой фильтр?