Страница: 1 |
|
Вопрос: Кодировка нескольких значений в одно число.
|
Добавлено: 22.07.11 13:40
|
|
Автор вопроса: me4huk
|
Добрый день, уважаемые знатоки!
Пишу обработку для учёта заправки картриджей на VBA под Excel. Поскольку с картриджами при их заправке могут проводить определённый ряд операций (всего их не более десятка), есть большое желание представить эти операции в виде двоичных(или шестнадцатиричных, как удобнее) констант и кодировать обработку каждого картриджа в одно десятичное число для записи в ячейку.
Поскольку я, к сожалению, не программист, то никакого представления о способах обратного преобразования такого числа и выявления действительных в каждом конкретном случае констант у меня нет. Я даже не знаю, как правильно называется подобное кодирование/разбор. Не поможете ли кодами/алгоритмами?
Заранее благодарен за внимание. :)
Ответить
|
Номер ответа: 1 Автор ответа: Ким Чен Ир
Вопросов: 0 Ответов: 140
|
Профиль | | #1
|
Добавлено: 22.07.11 15:09
|
Ничего сложного.
Это называется установка и проверка битовых флагов.
Каждое действие идентифицируется числом соответствующем степени двойки.
- Const MY_ZAPRAVKA = &H1
- Const MY_PROTIRKA = &H2
- Const MY_XXX1 = &H4
- Const MY_XXX2 = &H8
- Const MY_XXX3 = &H10
- Const MY_XXX4 = &H20
- Const MY_XXX5 = &H40
- Const MY_XXX6 = &H80
' &H - 'это шеснадцатиричный префикс, так нагляднее.
Ну, и вкурить принцип установки и проверки битов.
-
- Dim operation As Long
-
- operation = MY_ZAPRAVKA Or MY_PROTIRKA
- Cells(1, 1) = operation
- operation = Cells(1, 1)
- If (operation And MY_PROTIRKA) Then
-
- Else
-
- End If
- operation = operation And Not MY_ZAPRAVKA
- Cells(1, 1) = operation
Ответить
|
Страница: 1 |
Поиск по форуму