Найдено 5 результатов

Anika
04.08.2020 14:38:33
Форум: Free Pascal Compiler
Тема: Преобразование типов при вычислении
Ответы: 17
Просмотры: 16443

Re: Преобразование типов при вычислении

runewalsh

Поэтому константу, для которой критично (без)знаковое поведение, нужно явно привести к (без)знаковому типу:

Вот!!! Вот оно!!! Я даже и думать забыла, что константы тоже должны быть какого-то типа.

(Вообще-то в Дельфи, тем более $MODE DELPHI, должны быть такие же правила, скорее ...
Anika
04.08.2020 11:39:53
Форум: Free Pascal Compiler
Тема: Преобразование типов при вычислении
Ответы: 17
Просмотры: 16443

Re: Преобразование типов при вычислении

Снег Север

Спасибо, про Cardinal поняла, постараюсь избавиться от них в проекте.

Но замена на другой тип, к сожалению, не помогла.
Перепробовала все варианты: NativeUInt, UInt64, Int64 - все варианты приводят к ошибке.

Помогает только промежуточное присваивание временной переменной типа ...
Anika
04.08.2020 10:30:50
Форум: Free Pascal Compiler
Тема: Преобразование типов при вычислении
Ответы: 17
Просмотры: 16443

Re: Преобразование типов при вычислении

Снег Север

Не поняла, почему здесь должно произойти переполнение?
WholeData: Cardinal ( = Longword): 0 .. 4294967295, т.е. от 0 до $FFFFFFFF
ReturnData0: Byte: 0..255, т.е. от 0 до $FF

При умножении даже самого большого значения типа byte $FF на $1000000, результат никогда не превысит ...
Anika
04.08.2020 09:38:20
Форум: Free Pascal Compiler
Тема: Преобразование типов при вычислении
Ответы: 17
Просмотры: 16443

Re: Преобразование типов при вычислении

Спасибо за ответы.

Версия лазарус 2.0.6, винда, режим отладки Debug. В режиме release без ошибок.

Это перенос готового старого приложения, а не созданный заново проект. Поэтому и хотелось обойтись малой кровью.

Приведенные выше примеры я написала искусственно, чтобы проверить, почему падает ...
Anika
03.08.2020 14:56:18
Форум: Free Pascal Compiler
Тема: Преобразование типов при вычислении
Ответы: 17
Просмотры: 16443

Преобразование типов при вычислении

Добрый день!

Занимаюсь переносом старого приложения с Delphi на Lazarus. В коде много где встречаются вычисления, в которых в качестве параметров учавствуют переменные разных типов. При вычислении и сохранении в переменную типа Cardinal приложение падает, если один из параметров byte. Падает на ...