Побитное разложение

1. nikitan 95 04.01.08 00:50 Сейчас в теме
Доброй ночи, господа. Подскажите как разложить символ на биты? А затем собрать (хотя это по анологии)?
И есть ли в 1С аналог XOR?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. maloi_a 04.01.08 08:22 Сейчас в теме
Разложение в любую систему счисления.
Код
//
Функция ЦифраПоЧислу(Числ)
   Если Числ<=9 Тогда
      Возврат Строка(Числ);
   Иначе
      Возврат Симв(КодСимв("A")+Числ-11);
   КонецЕсли;   
КонецФункции
//
Функция ЧислоПоЦифре(Цифра)
   Если (Цифра>="0")И(Цифра<="9") Тогда
      Возврат Число(Цифра);
   Иначе
      Возврат 10+(КодСимв(Цифра)-КодСимв("A"));
   КонецЕсли;   
КонецФункции
//
Процедура РазложитьИСложить(Символ,Система)
   Перем А[8],Стр; 
   Если Система>16 Тогда
      Возврат;
   КонецЕсли;   
   // преобразуем в биты 
   Код=КодСимв(Символ);
   Сообщить("КодСимвола """+Символ+""" десятичный = "+Код);
   Стр="";
   Для й=1 по 8 Цикл
      Если Код=0 Тогда
         А[9-й]=0;         
         Продолжить;
      КонецЕсли;   
      А[9-й]=Код%Система;         
      Стр=ЦифраПоЧислу(А[9-й])+Стр;
      Код=Цел(Код/Система);
   КонецЦикла;
   Сообщить("КодСимвола """+Символ+""" "+Система+"-чный = "+Стр);
   // обратно собираем
   Код=0;
   Код1=0; 
   Степ=1;
   Для й=1 по 8 Цикл
      Код=Код+А[9-й]*Степ;
      Код1=Код1+ЧислоПоЦифре(Сред(Стр,9-й,1))*Степ;
      Степ=Степ*Система;
   КонецЦикла;
   Сообщить("Символ по "+Система+"-ному коду "+Стр+" = """+Симв(Код)+"""");
КонецПроцедуры

Показать полностью
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот