предполагая, у меня есть функция, чтобы вручную вычислить десятичный из двоичного числа
* до четырех символов (двоичный)
* если вы можете ввести только 0 и 1 символвысчитывает двоичного в десятичное вручную
ниже код работает отлично
function bin_to_dec($bin) {
$bin = str_split($bin);
$bin = array_reverse($bin);
$i = 0;
$dec = 0;
foreach($bin as $values) {
$ans = $values * pow(2, $i);
$dec += $ans;
$i++;
}
return $dec;
}
$bin = 1010 //4
$bin = 1 //1
$bin = 0 //0
при условии, если вы не можете использовать function strrev(), str_split(), array_reverse(), как бы вы преобразовали двоичный код в десятичный?
'$ длина = StrLen ($ BIN); for ($ i = 0; $ i <$ length; $ i ++) {$ offset = $ length - $ i - 1; $ values = $ bin {$ offset}; // .... остальная часть вашего кода цикла здесь} ' –
@MarkBaker Спасибо за ответ! ваш код мне очень помог! мой последний код: $ length = strlen ($ bin); $ dec = 0; //ver.1 for ($ i = 0; $ i <$ length; $ i ++) { $ offset = $ length - $ i - 1; $ values = $ bin [$ offset]; $ ans = $ values * pow (2, $ i); $ dec + = $ ans; } –
@MarkBaker жаль, что мой ответ трудно читать, отступ и новая строка, похоже, не работают в комментарии. но вот мой ver.2 кода, если функция substr() поддерживается в проекте. $ length = strlen ($ bin); $ dec = 0; for ($ i = 1; $ i <= $ length; $ i ++) { $ values = substr ($ bin, - $ i, 1); $ ans = $ values * pow (2, $ i-1); $ dec + = $ ans; } , но я по-прежнему предпочитаю версию 1, поскольку она не сильно зависит от родных функций php, поэтому она будет более совместима с разными версиями. php, если функции не работают. –