Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
15-1156374725
Rule
2006-08-24 03:12
2006.09.17
Наконецто перебрался в Москву !!!


15-1156834475
АК
2006-08-29 10:54
2006.09.17
C++/Delphi


15-1156771068
worldmen
2006-08-28 17:17
2006.09.17
Установка SUSE 9.


5-1139504418
max1000
2006-02-09 20:00
2006.09.17
Не стандартная TPanel


2-1156687606
Jimmy
2006-08-27 18:06
2006.09.17
Как экономить ресурсы?




   Наверх