![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
64 битовое число [D7]
ArtemESC © (2005-10-09 15:36:00)QWord = 0..$FFFFFFFFFFFFFFFF
Будет ли "работать" такая структура с использованием
математических операций.
Fay (2005-10-10 08:42:00) [1]2 palva © (09.10.05 21:49) [13]
Это Int64 8)
palva (2005-10-09 21:49:00) [2]Тогда уж задавать $8000000000000000..$7FFFFFFFFFFFFFFF
получится самый большой диапазон
Fay (2005-10-09 20:28:00) [3]2 ArtemESC © (09.10.05 16:09) [10]
Delphi, в мудрости своей, пытается считать $FFFFFFFFFFFFFFFF положительным и целым.
Это число влезает только в Int64, а максимальное положительное Int64 равно $7FFFFFFFFFFFFFFF. При таких обстоятельствах Delphi, конечно, отказывается от сотрудничества. Есть такая беда.
А вот диапазон$FFFFFFFFFFFFFFFF..0вполне можно задать, т.к. в этом случае число $FFFFFFFFFFFFFFFF будет воспринято как -1.
MBo (2005-10-09 17:16:00) [4]Int64 не хватает?
ArtemESC (2005-10-09 16:09:00) [5]>>Будет
Черт...
type
QWord = 0..$FFFFFFFFFFFFFFFF;
Не хочет компилироваться...
Джо (2005-10-09 16:05:00) [6]Вот демонстрация, хотя и бессмысленная, но иллюстративная.
procedure TForm1.Button1Click(Sender: TObject);
type
TQWord = record
Dw1,
Dw2: DWord;
end;
var
I64: Int64;
QW: TQWord;
begin
I64 := $FFFFFFFFFFFFFFF0;
QW := TQWord(I64);
QW := TQWord(Int64(QW)+2);
ShowMessageFmt ('First DWORD: %x',[QW.Dw1]);
ShowMessageFmt ('Seconf DWORD: %x',[QW.Dw2]);
end;
Джо (2005-10-09 16:03:00) [7]
> [7] ArtemESC © (09.10.05 15:58)
Можно. С приведением к элементарному типу, если размеры соответствуют.
ArtemESC (2005-10-09 15:58:00) [8]>>запись из двух DWord
Не уж то записи можно складывать и умножать? [1]
Anatoly Podgoretsky (2005-10-09 15:52:00) [9]Точно, такой уже есть
Anatoly Podgoretsky (2005-10-09 15:51:00) [10]Написать новый тип - запись из двух DWord, возможно такой уже описан, посмотри в справке.
Anatoly Podgoretsky (2005-10-09 15:46:00) [11]Как сделаешь так и будет. Только какое отношение это имеет к памяти, у тебя вопрос про тип.
ArtemESC (2005-10-09 15:46:00) [12]И еще вопрос...
Как можно получить его составные части в формате DWord?
ArtemESC (2005-10-09 15:43:00) [13]>>Anatoly Podgoretsky
А в памяти оно будет как два DWord?
Anatoly Podgoretsky (2005-10-09 15:37:00) [14]Будет