| 
    
            
         
         | 
    
  | 
Нужно из целого числа выделить флаги. | ☑ | ||
|---|---|---|---|---|
| 
    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)); Возврат; КонецПроцедуры  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |