| 0
    
        dave2000   23.01.15✎ 18:03 | 
        Например, есть массив чисел 0..255, нужно их инвертировать, наподобии наподобии операции NOT с двоичным числом. Например, есть число 8, в дыоичной системе это будет 00001000 (1 байт), иверсия этого числа будет 11110111, в десятичной системе это будет 247.
 Есть ли способы сделать это быстрее и красивее, чем программно переводить в "0" и "1", инвертировать их, а потом опять переводить в десятичную?
 |  | 
    
        | 8
    
        dave2000   23.01.15✎ 18:24 | 
        Кстати, перевод в любую систему из 10-тичной:
 
 // Функия переводит число переданное в параметре
 // Значение в строку (либо число) в системе счисления X
 // X определяется линой шаблона, представление знаков разрядов
 // значение шаблона, где сивол шаблона[k] - есть представление
 // Например если шаблок "01", то перевод будет осуществлен в двоичную
 // систему счисления, если "01234567", то в восьмиричную
 // если "0123456789ABCDEF", то в шестнадцатиричную
 // если "ЛИ", то в двоичную, где 0 представлен буквой Л, а 1 буквой И
 // вариант шаблона:
 // "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwzyzАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдежзийклмнопрстуфхцчшщьыъэюя!@#$%^&*()_-=+{}[]\|/,.:;'""><"
 // представит Значение в сто пятидесятишести ричной системе счисления,
 // где соответствующий символ шаблона означает соответствующую цифру разряда
 Функция Из_Число_В_XСчисл(Знач Значение, Шаблон)
 Результат="";
 Основание = СтрДлина(Шаблон);
 Пока Значение>0 цикл
 Остат = Значение%Основание;
 Результат1=Сред(Шаблон,Остат+1,1);
 Значение = (Значение-Остат)/Основание;
 Результат = Результат1 + Результат;
 КонецЦикла;
 Возврат Результат;
 КонецФункции
 
 
 Перевод из любой системы в 10-чную:
 
 |  |