如何在不使用 PHP 原生函数的情况下将二进制转换为十进制?

2024-05-11

我的代码是这样的:

<?php

function binary_to_decimal($a) {
    $bin_array = str_split($a);

    $y=sizeof($bin_array)-1;
    for ($x=0; $x<sizeof($bin_array)-1; $x++) {
        if ($bin_array[$x] == 1) {
            $bin_array[$x] = bcpow(2, $y);
        }
        $y--;
    }

    for ($z=0; $z<sizeof($bin_array); $z++) {
        $result = bcadd($result, $bin_array[$z]);
    }
    echo $result;
}

binary_to_decimal('11111');

?>

它仍然使用 PHP 原生函数。例如:bcpow、sizeof、bcadd。

是否可以在不使用PHP原生函数的情况下将二进制转换为十进制?

谢谢


这里是在http://php.net/manual/en/function.bindec.php#44910 http://php.net/manual/en/function.bindec.php#44910

function reconvert($bin_nr) {
 $base=1;
 $dec_nr=0;
 $bin_nr=explode(",", preg_replace("/(.*),/", "$1", str_replace("1", "1,", str_replace("0", "0,", $bin_nr))));
 for($i=1; $i<count($bin_nr); $i++) $base=$base*2;
 foreach($bin_nr as $key=>$bin_nr_bit) {
     if($bin_nr_bit==1) {
         $dec_nr+=$base;
         $base=$base/2;
     }
     if($bin_nr_bit==0) $base=$base/2;
 }
 return(array("string"=>chr($dec_nr), "int"=>$dec_nr));
}

检查这里:https://eval.in/556903 https://eval.in/556903

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不使用 PHP 原生函数的情况下将二进制转换为十进制? 的相关文章

随机推荐

  • Apache mod_speling 不区分大小写的 URL 问题

    我想要使 用 Apache 的不区分大小写的 URLmod speling模块 但这会产生不需要的 多个选项 列表 而 Apache 文档说 设置后 该指令将拼写更正的操作限制为小写 大写更改 不执行其他可能的更正 我正在全新安装的 Apa
  • 签名根框架中嵌入的子框架不起作用(Xcode 11.2.1)

    我有一个小型的概念验证应用程序 我试图在我的框架 AequumPOCFramework framework 中嵌入 并签名 一个框架 Alamofire 但是 当我尝试部署到我的设备时 它不断给出我的错误 在使用库验证的进程中使用无效 映射
  • 如何在鼠标悬停时突出显示 MahApps.Metro 的图块?

    我刚刚发现了一个非常出色的 WPF UI 工具包 MahApps Metro 我创建了一个带有 MahApps Metro Controls Tile 类型的图块的窗口 当鼠标经过时 我无法找到突出显示图块的正确方法 你知道我该怎么做吗 我
  • 如何在gradle中复制文件?

    我正在尝试将战争档案部署到 Tomcat 中 这是我编写的构建脚本 apply plugin war task deploy dependsOn war copy from build libs into E apache tomcat 8
  • 使用正则表达式检查整个字符串

    我正在尝试检查字符串是否是数字 因此正则表达式 d 似乎不错 然而 由于某种原因 该正则表达式也适合 78 46 92 168 8000 这是我不想要的 一些代码 class Foo rex re compile d def bar sel
  • 我可以说服 GCC 通过存储的函数指针内联延迟调用吗?

    当然 当内部函数调用在该范围内直接已知时 C 编译器可以内联从函数模板内进行的函数调用 ref https stackoverflow com q 4860762 560648 include
  • libSDL、CMake 和 Mac OS X Lion

    我正在尝试在我的Mac上编译cmake项目 但它取决于SDL框架 我安装了这个框架 在 cmake 之后向我报告找不到 libSDL 我自己设置了以下导出变量 按照 cmake 的建议 export SDL INCLUDE DIR Libr
  • 替换字符串 DIR 位置时使用 Replaceregexp 时出现问题

    我在做这件事时遇到了麻烦 有 1 个包含此行的批处理文件 设置 TEST DIR C temp dir1 我只想为 TEST DIR 设置一些新值 但是 当我在 ant 脚本中使用时 它会转义正斜杠并给出以下结果 设置 TEST DIR C
  • 如何通过htaccess在codeigniter中隐藏index.php和控制器名称

    我想从我的 codeignier url 网站隐藏 index php 和控制器名称 我也想替换这个术语 seo test product ad test product 我在下面提到了我的 htaccess 文件 请指导我如何解决这个问题
  • Web API 和 ASP MVC 之间的主要区别是什么

    标题确实总结了我的问题 我已经使用了这两种技术 但我不确定其中一种技术与另一种技术有何显着不同 在本质上 在设计一个宁静的 Web 应用程序时 选择 ASP MVC 或 Web API 时应考虑哪些标准和 或指南 Purpose ASP N
  • 在 Node.js 中每 4 小时安排一次任务

    如何使用 Node js 中的 node schedule 安排任务在 4 小时后运行 目前我的代码如下 但它没有按预期响应 var schedule require node schedule var task schedule sche
  • 按值传递和移动,或两种方法[重复]

    这个问题在这里已经有答案了 假设我有以下类 它有一个方法set value 哪种实现方式更好 class S public a set value method private Some type value 按值传递 然后移动 void
  • 将侦听器添加到各个 ListPreference 项

    我正在尝试将单个侦听器添加到ListPreference但我只是找不到正确的代码来做到这一点 例如 假设我有一个应用程序需要region要设置 所以我有一个ListPreference有三个选项 美洲 亚洲 欧洲 当我使用触控板滚动浏览项目
  • 如何免费使用谷歌路线API

    我使用 Google Directions Api 的限制是每天 2500 条路线查询 而且是免费的 一切正常 现在 当它明确写入时 在请求 api 时 它会突然出现此错误https developers google com maps d
  • AspNetUserLogins 表身份

    AspNetUserLogins 的用途是什么 是存储用户的登录信息吗 然后我如何用该数据更新该表 AspNetUserLogins 的用途是什么 在Asp net Identity中 Identity系统使用AspNetUserLogin
  • 如何取消配置 flutterfire?

    我们在 CLI 中使用以下命令将 flutter 应用程序与 firebase 连接 flutterfire configure 如文档中所述 https firebase flutter dev docs overview https f
  • argparse 更改参数的定义

    我按如下方式设置参数解析器 parser argparse ArgumentParser parser add argument point help enter a point e g 2 3 4 parser parse args po
  • 如何让 IntelliSense 显示 VSCode 中函数的参数?

    How can I make Intellisense show up the function parameters once the parentheses are written down It shows only if I jus
  • kafka消费端Offsets的一致性

    我有复制因子为 3 的卡夫卡主题min insync replicas 2 一个向该主题发送 X 条消息的生产者acks all 一段时间后 1 分钟内 在所有消息发送到主题后 将使用 java kafka 客户端为此主题创建新的消费者 使
  • 如何在不使用 PHP 原生函数的情况下将二进制转换为十进制?

    我的代码是这样的