Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: арифметика в FPC - cast Integer to Int64  [new]
Док
Member

Откуда: Казань
Сообщений: 5613
YuRock,

проверь на транке. Релиз ты будешь еще год ждать
6 янв 18, 20:29    [21084970]     Ответить | Цитировать Сообщить модератору
 Re: арифметика в FPC - cast Integer to Int64  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 2833
Док
проверь на транке. Релиз ты будешь еще год ждать

Я пытался - компилятор на сборке транка падает :)
6 янв 18, 20:33    [21084976]     Ответить | Цитировать Сообщить модератору
 Re: арифметика в FPC - cast Integer to Int64  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3429
Док
YuRock,

проверь на транке. Релиз ты будешь еще год ждать
Я не такой фанатик))
Я его использую мало, только для сборки своей udf.
Во всех местах, где проявлялся этот баг, я добавил говнокод, который его обходит. Работает и ладно. Буду релиза ждать.
6 янв 18, 20:38    [21084994]     Ответить | Цитировать Сообщить модератору
 Re: арифметика в FPC - cast Integer to Int64  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 2833
Проверил транк. Пофиксили.
6 янв 18, 21:30    [21085086]     Ответить | Цитировать Сообщить модератору
 Re: арифметика в FPC - cast Integer to Int64  [new]
Polesov
Member

Откуда:
Сообщений: 485
_Vasilisk_
Похоже на то, что при касте в старших разрядах оказывается мусор. Попробуй так

Result := (Int64(nSerial) and $FFFFFFFF) * $FFFFFFFF +( Int64(nNumber)  and $FFFFFFFF);


Можно еще через Int64Rec:
function MakeFullNumber( nSerial, nNumber : integer ) : int64;
begin
  with Int64Rec( Result ) do
  begin
    Hi := nSerial;
    Lo := nNumber;
  end;
end;


На assembler еще проще:
function MakeFullNumber( nSerial, nNumber : integer ) : int64; assembler;
asm
      Xchg    EAX,  EDX
end;


С уважением, Polseov.
6 янв 18, 22:25    [21085157]     Ответить | Цитировать Сообщить модератору
 Re: арифметика в FPC - cast Integer to Int64  [new]
Bali
Member

Откуда:
Сообщений: 41
YuRock
Ух ты, надо будет проверить, когда в релиз включат.

Lazarus 1.8 с FPC 3.0.4, x64 - все нормально считает.
6 янв 18, 22:38    [21085174]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Delphi Ответить