![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]
> это лечится как-нибудь?
лечится.
Просто не пихай туда то что туда заведомо не лезет.