Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.019 c
1-1085707850
Grrey
2004-05-28 05:30
2004.06.13
Универсальный Excel или что я полчил после бессоной ночи.


3-1084973834
Gennadiy
2004-05-19 17:37
2004.06.13
Как сделать для IBQuery чтото типа свойства ReadOnly??


1-1086036883
SergP
2004-06-01 00:54
2004.06.13
PageControl&PopupMenu. Как узнать какой Tabsheet


6-1080720932
devil_83
2004-03-31 12:15
2004.06.13
Простой почтовый сервер


1-1086103097
Anton
2004-06-01 19:18
2004.06.13
Записи




   Наверх