Разложение в любую систему счисления.
Код |
---|
//
Функция ЦифраПоЧислу(Числ)
Если Числ<=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))*Степ;
Степ=Степ*Система;
КонецЦикла;
Сообщить("Символ по "+Система+"-ному коду "+Стр+" = """+Симв(Код)+"""");
КонецПроцедуры
Показать полностью |