Главная страница
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.036 c
4-1084010880
_Duk
2004-05-08 14:08
2004.06.13
Потоки


3-1085419286
m2003
2004-05-24 21:21
2004.06.13
База vs. Файл


6-1082522715
SDF
2004-04-21 08:45
2004.06.13
Proxy без Basic авторизации


3-1084957679
Users
2004-05-19 13:07
2004.06.13
Транзации в ADO


4-1084053583
Мыш
2004-05-09 01:59
2004.06.13
получение иконки не работает