Представление числа в виде суммы степеней двойки #240725


#0 by математик
Напр., 16 = 8 + 4 + 2 + 1 = 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0 Как это реализовать на языке 1С. Ну или просто алгоритм???
#1 by igork1966
Последовательным делением на два естественно....
#2 by Убитое время
Ник смени, математик :) %2 в цикле пока остаток Цел( /2) не ноль - номер итерации и есть твои степени
#3 by skunk
function DecToBin(val Arg1, Arg2)    if Arg1 < 2 then        Arg2 = right("00000000000000000000000000000000" + (string(Arg1) + Arg2), 32);    else        Arg2 = LongInt(int(Arg1/2), ?(int(Arg1/2) = (Arg1/2), "0", "1") + Arg2);    endif;    return Arg2; endfunction
#4 by Широкий
двоичный код
#5 by skunk
function DecToBin(val Arg1, Arg2)   if Arg1 < 2 then       Arg2 = right("00000000000000000000000000000000" + (string(Arg1) + Arg2), 32);   else       Arg2 = DecToBin(int(Arg1/2), ?(int(Arg1/2) = (Arg1/2), "0", "1") + Arg2);   endif;   return Arg2; endfunction
#6 by Obersturmbannfuhrer
школа... 8класс... информатика... сейчас такое наверно и в ранних классах изучают...
#7 by Ангел-Хоронитель
8 + 4 + 2 + 1 = 15 <> 16!!!
#8 by Маленький Ежик
Любопытно, зачем это надо?
#9 by Ангел-Хоронитель
+к тому же, ты сам написал решение.... теперь просто обрати это в цикл....
#10 by fabrikant
Как то писал обработку по переводу числа из любой в любую систему исчисления от (2 до 36 ричной). Но где-то потерялась. Могу за деньги восстановить :))
#11 by miki
Ещё вариант реализации, см. . ДесЧисло,БинЧисло - реквизиты формы
#12 by Убитое время
Вот тебе нож в спину
#13 by fabrikant
Как вы блин запоминаете где что лежит? Мне такое барахло проще и быстрее по новой написать, чем искать...
#14 by mrkorn
функции от Рупора
#15 by mrkorn
закладки там... всякие...
#16 by Убитое время
Ну когда помнишь где лежит проще стянуть, чем заново писать
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С