【发布时间】:2017-06-05 06:50:52
【问题描述】:
假设我有一个从二进制数手动计算十进制的函数
*最多四个字符(二进制)
*假设你只能输入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
假设如果你不能使用函数 strrev()、str_split()、array_reverse(),你将如何手动将二进制转换为十进制?
【问题讨论】:
-
$length = strlen($bin); for($i = 0; $i < $length; $i++) { $offset = $length - $i - 1; $values = $bin{$offset}; // .... rest of your loop code here } -
@MarkBaker 感谢您的回复!你的代码对我帮助很大!我的最终代码是 $length = strlen($bin); $dec = 0; //ver.1 for($i = 0; $i
-
@MarkBaker 抱歉,我的回复很难阅读,缩进和换行似乎在评论中不起作用。但如果项目中支持 substr() 函数,这是我的第 2 版代码。 $length = strlen($bin); $dec = 0; for($i = 1; $i