Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2010, 13:34   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А если режимов будет больше, чем бит в INTEGER?
Array of integer;

В добавок предожу функу, которой я вычленяю битовые записи:
Код:
// Это массив битовых масок для стандартного integer
bit:ARRAY[0..31] of DWORD
  = ($1,$2,$4,$8,$10,$20,$40,$80,$100,$200,$400,$800,$1000,$2000,$4000,$8000,
     $10000,$20000,$40000,$80000,$100000,
     $200000,$400000,$800000,$1000000,
     $2000000,$4000000,$8000000,$10000000,$20000000,$40000000,$80000000);

...
{ Функция принимает следующие параметры:
 Source - целое, в котором будет битами оперировать
 FromBit - номер бита с которым будет оперировать
 CountBit - если мне хочется из числа вычленить битовую запись, 
например с 3-го бита по 5-й (некоторые контроллеры оч. любят 
упаковывать маленькие числа в одно большое) я указываю сколько битов брать от FromBit - таким образом получу число
}
function BitsToNum(Source:variant;FromBit:Word=0;CountBit:word=1):variant;//overload
begin
 // Собсн тут сдвиг вправо до заказанного кол-ва битов, и отсеивание по маске хвоста слева чтоб не мешал
 result:=(bit[CountBit]-1) and (source shr frombit);
end;
if BitsToNum(Число,1,1)=1 then бит 1 в числе установлен

Подчисло=BitsToNum(Число,2,4) -биты со 2-го по 4-тый интерпретируются как число
I'm learning to live...

Последний раз редактировалось Stilet; 13.07.2010 в 13:51.
Stilet вне форума Ответить с цитированием
Старый 13.07.2010, 13:36   #12
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Эээээээ.... Как то у меня голова закружилась... Можно каждую букву прокомментить. Такой сильной магии я еще не встречал.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 13.07.2010, 13:38   #13
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
SetLength(A, 5);
Ну в твоем примере достаточно и байта. Integer не хватит, если у тебя будет более 32-х флажков. Думаю для среднего проекта вполне хватит.

Цитата:
Как то у меня голова закружилась...
Гироскопы сбиты, можно автонастроить если выровнять давление, ну это слей пол тазика крови, полегчает.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 13.07.2010, 13:50   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Можно каждую букву прокомментить.
Постарался как смог - см. выше.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.07.2010, 14:06   #15
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Благодарю за предоставленную помощь.
Обязательно воспользуюсь советом.
5000
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 13.07.2010, 14:07   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
5,000
С юбилеем, дружище
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.07.2010, 14:08   #17
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Обязательно воспользуюсь советом.
Про головокружение ?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 13.07.2010, 14:15   #18
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Про головокружение ?
Именно.
Кстати, Stilet, а откуда у тебя столько? Помнится ты сидел в списке ниже Админа. А потом за несколько дней вырвался на поул позишн.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 13.07.2010, 14:55   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А потом за несколько дней вырвался на поул позишн.
А ты спи больше Во сне люди ростут.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.07.2010, 16:57   #20
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

стоп, а у тебя может быть включенно несколько режимов одновременно?
если нет, то зачем с битами парится? сделай перечислимый тип.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
False,True Jony Wocker Общие вопросы C/C++ 2 06.02.2010 00:42
Окно поверх всех остальных Vikelf Помощь студентам 2 28.05.2009 17:11
Паскаль. Вставить в массив элемент со сдвигом всех остальных элементов Yulya Помощь студентам 1 31.03.2009 10:53
True или False, в зависимости от того, имеют три данных числа одинаковую четность DjVidan Помощь студентам 4 12.10.2008 22:02
Проверка (True or False for CheckBox) NeiL Общие вопросы Delphi 5 31.01.2008 09:42