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

Вниз

Как прямо записать в структуру TMaps = set of TMap число?   Найти похожие ветки 

 
Erik1   (2004-08-18 17:08) [0]

Мне нехочется делать цикл и в нем перебирать биты. Мне нужно записать туда 4 младших бита. Дамаю, что можно взять адрес переменой и записать туда (value and $0F)? Я ненарушаю внутреней формат переменой?


 
TUser ©   (2004-08-18 17:16) [1]

А что такое TMap? Если что-то типа byte, то таким образом ты ничего не нарушишь.


 
Erik1   (2004-08-18 17:17) [2]

Затормозил TMap = 0..7;


 
Anatoly Podgoretsky ©   (2004-08-18 17:19) [3]

+ [0..3]


 
Erik1   (2004-08-18 17:44) [4]

Может я неясно выразился, но хочу записать набор битов. Тоесть у меня есть byte я обнуляю его старшие биты (value and $0F). Далее число надо записать в Map: TMaps;
Думаю так:
Value := (Value and $0F);
Move(Value, Map, SizeOf(Map));
P.S.
В Help я сам умею смотреть. Вроде я ждесь мелкаю иногда, наверно незапомнели. Конечно можно самому посмотреть, но я люблю спрашивать. Бывает чтото интересное узнаеш.


 
Anatoly Podgoretsky ©   (2004-08-18 17:50) [5]

Тогда не плюс, а минус [4..7]


 
TUser ©   (2004-08-18 17:50) [6]


> Может я неясно выразился

Это точно ...

> хочу записать набор битов

Есть известный алгоритм, как записать число в виде набора битов. Т.е. в 2ичной системе. Нужны div и mod, хотя за mod меня тут попинали недавно (конечно, shr лучше).

>Value := (Value and $0F);
>Move(Value, Map, SizeOf(Map));

Опиши поподробнее свою задачу. Не могу придумать, зачем такое может понадобиться.


 
Anatoly Podgoretsky ©   (2004-08-18 17:56) [7]

Erik1   (18.08.04 17:44) [4]
Это очень медленный путь и к тому же не прозрачный.


 
Erik1   (2004-08-18 18:01) [8]

Да писатель из меня неполучится. Вобщем я поэксперементировал мой подход вроде работает. А зачем нужно, просто есть готовая структура ее изменить нельзя в нее передается новый по смыслу параметр. Параметр просто число в базе, поэтому перебор битов бесмысленен для того чтобы снова получить число.
 Почему биты спросите, потому что железо такое. Это вобще сначала через сеть передается а после в com порт уходит. Поэтому и структуру менять нельзя.


 
Erik1   (2004-08-18 18:03) [9]

To Anatoly Podgoretsky
Неуспел прочитать ваше сообщение, поэтому новый пост.
А что разбиеение числа на биты и организация по нему цикла быстрее чем просто Move?!!


 
Anatoly Podgoretsky ©   (2004-08-18 20:10) [10]

Код будет почти такой, только без лишнего Move
Почему бы не сравнить два сгенерированого кода.
А скорость важна там, где будут выполняться миллионы операций и выигрыш/проигрыш составит миллисекунды



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

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

Наверх




Память: 0.49 MB
Время: 0.045 c
3-1092293006
stud
2004-08-12 10:43
2004.09.05
не работает такая конструкция


14-1092567831
Rus_LAN
2004-08-15 15:03
2004.09.05
FireBird (Документация)


3-1092044112
Алексей
2004-08-09 13:35
2004.09.05
после выполнения SQL запроса результат не отображается


4-1090322733
Rouse_
2004-07-20 15:25
2004.09.05
Описание сервиса


8-1083878953
diaz
2004-05-07 01:29
2004.09.05
Вызов панели настройки видео кодеков