Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Int64 и Integer Overflow [D5]


KSergey ©   (2008-04-16 18:10:00) 

Столкнулся с неприятной проблемой: дельфи не выкидывает Integer Overflow при операциях с Int64. Тупо-глупо отрезает что влезло - и все, не ломается.
С опциями проекта все нормальненько, на Integer - при переполнении ломается как и надо, на Int64 не хочет. Мне это сильно требуется.

Отсюда вопрос: это лечится как-нибудь? Что-то ничего полезного не нашел в гугле... Справка про переполнение упоминает только int16/int32. Про Int64 - молчек.


oxffff   (2008-04-16 20:28:00) [1]

Либо проще

-Overflow Checking(Disabled).

var a:int64;
begin
a:=$8000000000000000;
a:=a-1;
asm
into;
end;


oxffff   (2008-04-16 20:17:00) [2]


> Отсюда вопрос: это лечится как-нибудь?


Лечится как обычно проверкой битика регистра флагов.


oxffff   (2008-04-16 20:16:00) [3]


> KSergey ©   (16.04.08 18:10


Delphi 7. +Overflow Checking.

var a:int64;
begin
a:=$7FFFFFFFFFFFFFFF;
a:=a+1;  //       <-Исключение здесь

Что я не так делаю? :)


Anatoly Podgoretsky   (2008-04-16 19:50:00) [4]

> tesseract  (16.04.2008 18:32:05)  [5]

Зачем своя константа, MaxInt


MBo   (2008-04-16 18:38:00) [5]

в BDS2006 то же самое


Сергей М,   (2008-04-16 18:35:00) [6]


> оно ж в результате вычислений может случиться.... а я и
> не узнаю, обидно


А ты компилятор попроси)

В ряде случаев он сможет помочь твоей беде исключением)


tesseract   (2008-04-16 18:32:00) [7]


> Сравнивай с $FF FF FF FF FF FF FF FF, узнаешь.


ТПРУ это  для unsigned.


tesseract   (2008-04-16 18:31:00) [8]


> Так оно ж в результате вычислений может случиться.


Сравнивай с $FF FF FF FF FF FF FF FF, узнаешь.

ЗЫ: Федеральный долг США считаешь ?


Reindeer Moss Eater   (2008-04-16 18:29:00) [9]

myint64 and $00000000FFFFFFFF;


KSergey   (2008-04-16 18:22:00) [10]

> Сергей М,   (16.04.08 18:16) [1]
> Просто не пихай туда то что туда заведомо не лезет.

Так оно ж в результате вычислений может случиться.... а я и не узнаю, обидно.


Сергей М,   (2008-04-16 18:16:00) [11]


> это лечится как-нибудь?


лечится.

Просто не пихай туда то что туда заведомо не лезет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо