Имя: Пароль:
1C
1C 7.7
v7: Как инвертировать двоичную цифру?
0 DES
 
28.01.13
14:43
если 1 то 0
если 0 то 1
?
1 andrewalexk
 
28.01.13
14:44
:) х=1-у
2 Бешеная Нога
 
28.01.13
14:45
(1) красава
3 andreymongol82
 
28.01.13
14:45
c= a XOR b
4 DES
 
28.01.13
14:47
(1) помнил, но забыл. ;)
5 Mikeware
 
28.01.13
14:49
(1) а троичную? :-)
6 DES
 
28.01.13
14:50
(5) по модулю Пи проще.
7 andrewalexk
 
28.01.13
15:06
(5) :) и как же ты это видишь?
8 1Сергей
 
28.01.13
15:28
(5)

Функция Из10в3(Чис)
   Если Чис>2 Тогда
       Возврат ""+Из10в3(Цел(Чис/3))+(Чис%3);
   Иначе
       Возврат ""+(Чис%3);
   КонецЕсли;
КонецФункции

Функция Из3в10(Чис)
   ДлинаЧисла = СтрДлина(Чис);
   Если ДлинаЧисла=1 Тогда
       Возврат Число(Чис);
   Иначе
       Возврат Из3в10(Лев(Чис, ДлинаЧисла-1)) * 3 + Число(Прав(Чис,1));
   КонецЕсли;
КонецФункции

Процедура Сформировать()
   
   ВведенноеЧисло = 0;
   Если ВвестиЧисло(ВведенноеЧисло, "", 15, 0)=1 Тогда
       
       ТроичноеВходящее = Из10в3(ВведенноеЧисло);
       ТроичноеИсходящее = "";
       
       Для Идн = 1 по СтрДлина(ТроичноеВходящее) Цикл
           ТроичноеИсходящее = ТроичноеИсходящее + (2-Число(Сред(ТроичноеВходящее, Идн, 1)));
       КонецЦикла;
       
       Сообщить("Результат: "+Из3в10(ТроичноеИсходящее));
       
   КонецЕсли;
   
КонецПроцедуры

накидал побырому
9 1Сергей
 
28.01.13
15:40
чо, неправильно?
10 Йохохо
 
28.01.13
16:02
(9) конечно ) в троичной нет числа 3
11 Йохохо
 
28.01.13
16:04
я стормозил, но "Возврат ""+(Чис%3);" лучше поправить
12 dk
 
28.01.13
16:07
перегнать в строку и заменить 0>3 1>4 а потом 3>1 4>0