Форум: "Начинающим";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];
Внизновый тип Найти похожие ветки
← →
Sergiony (2006-05-11 01:03) [0]Приветсвую всех мастеров!
как создать свой тип целого числа например как int64, но int128, чтобы с ним можно было производить все математические операциии как и с int64?
← →
Пусик © (2006-05-11 01:06) [1]Такое невозможно в Delphi до версии 7. Вряд ли возможно и в следующих.
← →
DevilDevil © (2006-05-11 01:38) [2]пока не выйдет 64й Delphi, тебе придётся реализовывать всё самостоятель (что очень сложно). Могу посоветовать использовать вещественный double
← →
Джо © (2006-05-11 01:44) [3]Отчего же, отчего же.
В Делфи 2006 появились две прекрасные вещи: методы в записях и перегрузка операторов для них же.
Таким образом относительно непросто и, несомненно, красиво, можно реализовать желаемое :)
Например, создадим такую вот запись:
TInt128 = record
Data: array [0..15] of Byte; // тут актуальные данные
class operator Add (A,B: TInt128): TInt128; // метод сложения
class operator Add (A: TInt128; B: Integer): TInt128; // еще один
class operator Implicit (A: Integer): TInt128; // приведение типов
// реализуем также вычитание, целочисл. деление
// и все остальное, что необходимо,
// включая оператор сравнения
end;
Для реализации такой вещи нужно немного разобраться с арифметикой над большими числами и проделать немного чисто формальной работы.
И в результате будут возможны такие конструкции как:var
Val1,
Val2: TInt128;
begin
Val2 := 12345;
Val1 := Val2 + 200;
end;
и тому подобные :)
← →
Джо © (2006-05-11 01:44) [4]> относительно непросто
относительно просто :)
← →
Anatoly Podgoretsky © (2006-05-11 09:17) [5]Джо © (11.05.06 01:44) [3]
Да это легко заменяется на
Val1 := Add(Val2, 200);
Чем оно по сути и является. Что хорошо видно в АДА, там обязательно определяется оператор и могут использоваться все три формы, кроме указаных двух, еще и "+"(A, B)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c