Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

Еще раз о записях   Найти похожие ветки 

 
Anton   (2004-06-01 20:10) [0]

Вот нашел код:
type
 Long_Rec = packed record
   case byte of
     1: (LoLo,LoHi,HiLo,HiHi:byte);
   end;
...................................
var
 aA, aB: Integer;
 v: Int64;
...................................
 aA := 2;
 aB := 30;
 v := 262144;
...................................  
 Long_Rec(v).LoHi := Byte(aA);
 Long_Rec(v).LoLo := Byte(aB);
................................

Код компилится. В итоге v = 262686. Объясните сей факт.


 
Anton   (2004-06-01 20:11) [1]

Ошибся : v: INTEGER;


 
Anatoly Podgoretsky ©   (2004-06-01 20:16) [2]

Ну ты заменил соответствующие байты.
Более удобно использовать объявление из Дельфи 6+


 
Anton   (2004-06-01 20:20) [3]

Не совсем понятно как именно заменил.
  case byte of
    1: (LoLo,LoHi,HiLo,HiHi:byte);

LoLo,LoHi,HiLo,HiHi - это биты в "byte"?


 
Palladin ©   (2004-06-01 20:23) [4]


>  В итоге v = 262686. Объясните сей факт.

Ну а сколько тебе надо было?


 
Anton   (2004-06-01 20:25) [5]

Столько и надо, только как происходит заменва байт?


 
Anatoly Podgoretsky ©   (2004-06-01 20:28) [6]

Путем прямого обращения к байтам.


 
Palladin ©   (2004-06-01 20:30) [7]

00 00 04 00

1E 02 04 00


 
Anton   (2004-06-01 20:30) [8]

Когда я пишу          case byte of
                       1: (LoLo,LoHi,HiLo,HiHi:byte);
я тем самым подразумеваю, что мой "byte" состоит из: LoLo,LoHi,HiLo,HiHi. Я правильно понял?


 
Palladin ©   (2004-06-01 20:35) [9]

http://delphimaster.net/view/1-1086101433/
Palladin ©   (01.06.04 19:37) [14]


 
Anton   (2004-06-01 20:41) [10]

То есть если я пишу      
     case byte of
       1: (LoLo,LoHi,HiLo,HiHi:byte);
       2: (Hi,Lo:Word);
то это варианты работы с переменной типа byte?


 
default ©   (2004-06-01 20:43) [11]

нет, с 4x-байтовой переменной


 
Palladin ©   (2004-06-01 20:44) [12]

Да с какого же хрена то? Чудо (С) Игорь Шевченко.


 
Anton   (2004-06-01 20:46) [13]

А что тогда означает строчка - case byte of ? Почему не
case integer of
 1: (LoLo,LoHi,HiLo,HiHi:byte);
Такая строчка правильная?


 
default ©   (2004-06-01 20:53) [14]

Anton   (01.06.04 20:46) [13]
правильная, если ты к примеру предусматриваешь более 256 вариантов трактовки одних и тех же данных, то придётся взять тип больший байта...


 
Anton   (2004-06-01 20:57) [15]

Все, всем спасибо.



Страницы: 1 вся ветка

Текущий архив: 2004.06.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
3-1084862582
Bizquit
2004-05-18 10:43
2004.06.13
Вертикальный ДБ Грид.


14-1085575902
oldman
2004-05-26 16:51
2004.06.13
Что-то слабо верится...


1-1086162955
Вованчик
2004-06-02 11:55
2004.06.13
ссылка на компонент


3-1085419004
Duch
2004-05-24 21:16
2004.06.13
При запуске не находит базу данных


3-1085475768
sesh
2004-05-25 13:02
2004.06.13
Как сохранить результат запроса AdoQuery в текстовій файл