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

Вниз

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

Наверх




Память: 0.49 MB
Время: 0.021 c
2-1234257405
Scot Storch
2009-02-10 12:16
2009.03.29
службы (сервисы)


15-1232607529
XentaAbsenta
2009-01-22 09:58
2009.03.29
Получить уведомление о всовывании флешки.


2-1233739538
zorik
2009-02-04 12:25
2009.03.29
Смена типа на ходу


2-1233574367
Hamyachok
2009-02-02 14:32
2009.03.29
TImage.Picture.SaveToFile


11-1197987179
nikfel
2007-12-18 17:12
2009.03.29
Как проиграть wav-файл.