Я работаю над математической задачей, где формула: А [я] * (-2) мощность яГлядя на противоположный мощны() в PHP
где i=0,1,2,3,...
А представляет собой массив, имеющий значения 0 или 1
Входной массив: [0,1,1,0,0,1,0,1,1,1,0,1,0,1,1]
Выход: 5730
С ode
$totalA = 0;
foreach ($A as $i => $a) {
$totalA += $a * pow(-2, $i);
}
Это правильно. Теперь я ищу свою противоположность, как:
входа является: 5730
выхода будет: [0,1,1,0,0,1,0,1,1,1,0,1,0,1,1]
Я не прошу для точного кода, но ищу какую-то логику от того, где я должен начать. Я пытался использовать метод log(), но не возвращал желаемый результат.
Ваш первый пример - преобразование некоторого двоичного кода (младшего разряда LSB) [0,1,1,0,0,1,0,1,1,1,0,1,0,1,1] в десятичный 5730. Итак в основном вы хотите преобразовать десятичное число, например 5730 - бинарный? – barny
Да, но отрицательный двоичный код. –
Ну, это не «отрицательный двоичный» в смысле «двоичный код отрицательного числа». Поскольку не все десятичные числа (например, 3-15) могут быть представлены в вашем странном нелинейном двоичном формате, может быть простейшим предварительное вычисление тех, которые делают, сохраняя их в таблице поиска. Вот ты, @fafl просто сделал это за тебя. – barny