Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
9-1177753114
pavel_guzhanov
2007-04-28 13:38
2009.03.29
Стоит ли читать книгу Краснова


6-1201453017
XakeP
2008-01-27 19:56
2009.03.29
Как написать прокси-сервер


2-1233595304
Flex
2009-02-02 20:21
2009.03.29
события OnUPDRead Компонента ТIdUDPServer1


2-1233731804
дед Маздай
2009-02-04 10:16
2009.03.29
TList vs TThreadList


2-1234184735
Footballer
2009-02-09 16:05
2009.03.29
Записать текстовый файл в exe-файл





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский