Форум: "Основная";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
ВнизInt64 и Integer Overflow Найти похожие ветки
← →
KSergey © (2008-04-16 18:10) [0]Столкнулся с неприятной проблемой: дельфи не выкидывает Integer Overflow при операциях с Int64. Тупо-глупо отрезает что влезло - и все, не ломается.
С опциями проекта все нормальненько, на Integer - при переполнении ломается как и надо, на Int64 не хочет. Мне это сильно требуется.
Отсюда вопрос: это лечится как-нибудь? Что-то ничего полезного не нашел в гугле... Справка про переполнение упоминает только int16/int32. Про Int64 - молчек.
← →
Сергей М, (2008-04-16 18:16) [1]
> это лечится как-нибудь?
лечится.
Просто не пихай туда то что туда заведомо не лезет.
← →
KSergey © (2008-04-16 18:22) [2]> Сергей М, (16.04.08 18:16) [1]
> Просто не пихай туда то что туда заведомо не лезет.
Так оно ж в результате вычислений может случиться.... а я и не узнаю, обидно.
← →
Reindeer Moss Eater © (2008-04-16 18:29) [3]myint64 and $00000000FFFFFFFF;
← →
tesseract © (2008-04-16 18:31) [4]
> Так оно ж в результате вычислений может случиться.
Сравнивай с $FF FF FF FF FF FF FF FF, узнаешь.
ЗЫ: Федеральный долг США считаешь ?
← →
tesseract © (2008-04-16 18:32) [5]
> Сравнивай с $FF FF FF FF FF FF FF FF, узнаешь.
ТПРУ это для unsigned.
← →
Сергей М, (2008-04-16 18:35) [6]
> оно ж в результате вычислений может случиться.... а я и
> не узнаю, обидно
А ты компилятор попроси)
В ряде случаев он сможет помочь твоей беде исключением)
← →
MBo © (2008-04-16 18:38) [7]в BDS2006 то же самое
← →
Anatoly Podgoretsky © (2008-04-16 19:50) [8]> tesseract (16.04.2008 18:32:05) [5]
Зачем своя константа, MaxInt
← →
oxffff © (2008-04-16 20:16) [9]
> KSergey © (16.04.08 18:10
Delphi 7. +Overflow Checking.
var a:int64;
begin
a:=$7FFFFFFFFFFFFFFF;
a:=a+1; // <-Исключение здесь
Что я не так делаю? :)
← →
oxffff © (2008-04-16 20:17) [10]
> Отсюда вопрос: это лечится как-нибудь?
Лечится как обычно проверкой битика регистра флагов.
← →
oxffff © (2008-04-16 20:28) [11]Либо проще
-Overflow Checking(Disabled).
var a:int64;
begin
a:=$8000000000000000;
a:=a-1;
asm
into;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c