|
Нужно из целого числа выделить флаги. | ☑ | ||
---|---|---|---|---|
0
Олеся999
13.10.15
✎
08:03
|
Помогите пожалуйста. Может кто сталкивался?
Нужно из целого числа выделить флаги. Суть процедуры, надо разложить число на биты и потом смотреть в каком бите 1, это означает что у прибора есть что-то ... что определим потом в Если тогда ... Нужно что то вроде ... подсовываешь число в функцию, а она тебе возвращает массив битов. |
|||
1
DDwe
13.10.15
✎
08:04
|
(0) А 1С умеет работать с битами?
|
|||
2
Горогуля
13.10.15
✎
08:05
|
ч%2 - первый бит, (ч-(ч%2))%4 - второй бит
|
|||
3
cw014
13.10.15
✎
08:05
|
(0) v8: Как преобразовать десятичное число в двоичное в 1С ?
В гугле забанили? |
|||
4
cw014
13.10.15
✎
08:06
|
Олеся999, тебе бы не 1С программировать с такой то внешностью... :-*
|
|||
5
Горогуля
13.10.15
✎
08:08
|
(2) ((ч-(ч%2))%4)/2. ну плюс-минус
|
|||
6
Олеся999
13.10.15
✎
08:08
|
(3) Хах да уж )
Там суть функции, сравниваем со степенью 2, если число больше, то вычитаем и т.д. пока не станет 0. Суть что надо начинать вычитать с большей возможной степени 2 и потом проверять хватает остатка на след. меньшую на 1 степень, если нет ещё уменьшаем степень ... |
|||
7
Горогуля
13.10.15
✎
08:08
|
(6) сама всё знаешь
|
|||
8
Trotter
13.10.15
✎
08:12
|
Что такая девушка делает в 1С ? Да ещё и пробует судя по всему работать с оборудованием. Вам эту задачу для чего нужно - то ? всё оборудование работает через драйвера. Надо просто поработать с драйвером.
|
|||
9
Горогуля
13.10.15
✎
08:13
|
(8) бородатого мужика охмуряет
|
|||
10
Trotter
13.10.15
✎
08:14
|
(9) "у прибора есть что-то " - что за прибор - то такой ?
|
|||
11
Олеся999
13.10.15
✎
08:15
|
(8)
По этому числу надо определять какие входы у прибора. |
|||
12
vde69
13.10.15
✎
08:17
|
(9) зачем меня в суе вспоминать, бородатый и вроде муж :)
|
|||
13
Олеся999
13.10.15
✎
08:22
|
2 в стенени 0 = 1
2 в стенени 1 = 2 2 в стенени 2 = 4 3начит если число 5, то это 2 в стенени 0 = 1 и (прибавить) 2 в стенени 2 = 4 т.е. первый бит и третий |
|||
15
vde69
13.10.15
✎
08:24
|
примерно так:
мЧисло = ТвоеЧисло % 256; Бит8 = (мЧисло - (мЧисло % 128)) > 0 мЧисло = мЧисло % 128; Бит7 = (мЧисло - (мЧисло % 64)) > 0 мЧисло = мЧисло % 64; Бит6 = (мЧисло - (мЧисло % 32)) > 0 мЧисло = мЧисло % 32; |
|||
16
Горогуля
13.10.15
✎
08:24
|
во, больше нуля ;)
|
|||
17
kosts
13.10.15
✎
08:32
|
Что-то в этом роде
Если биты нужны в обратном порядке, то вместо добавить в массив можно сделать вставить. |
|||
18
Олеся999
13.10.15
✎
09:03
|
(17) Спасибо сейчас потестю
|
|||
19
Serg_1960
13.10.15
✎
09:08
|
(17) Массив то зачем в функции? Сразу в символы в строку и постобработка лишняя.
|
|||
20
kosts
13.10.15
✎
09:13
|
(19) массив просили
|
|||
21
Бертыш
13.10.15
✎
09:21
|
(4) В Казахстане то среди казахов?
|
|||
22
Serg_1960
13.10.15
✎
09:40
|
(20) Sorry, был не прав :)
Функция ДвоичноеЧисло(Х) Возврат ?(Х<2,""+Х,ДвоичноеЧисло(Цел(Х/2))+?(Х%2,"1","0")); КонецФункции Процедура КнопкаВыполнитьНажатие(Кнопка) Сообщить(ДвоичноеЧисло(324578723845)); Возврат; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |