PHP实现在线进制转换器,10进制,2、4、8、16、32进制转换
1.接口文档


2.laravel实现代码
/*** 进制转换计算器* @return \Illuminate\Http\JsonResponse*/public function binaryConvertCal(){$ten = $this->request('ten');$two = $this->request('two');$four = $this->request('four');$eight = $this->request('eight');$sixteen = $this->request('sixteen');$thirty_two = $this->request('thirty_two');$type = intval($this->request('type')) ?: 10;$data = ['ten' => $ten,'two' => $two,'four' => $four,'eight' => $eight,'sixteen' => $sixteen,'thirty_two' => $thirty_two];if ($type == 10 && $ten) {// 1.十进制$data['ten'] = $ten;// 2.将十进制转换二进制$data['two'] = decbin($ten);// 3.十进制转换四进制$data['four'] = $this->decimalToBase($ten, 4);// 4.十进制转换八进制$data['eight'] = decoct($ten);// 5.十进制转换十六进制$data['sixteen'] = dechex($ten);;// 6.十进制转换三十二进制$data['thirty_two'] = $this->base10ToBase32($ten);}if ($type == 2 && $two) {// 1.二进制转换十进制$ten = bindec($two);$data['ten'] = $ten ?: 'NAN';// 2.二进制$data['two'] = $two;// 3.二进制转换为四进制$fourNumber = bindec($two); // 转换为10进制$fourNumber = base_convert($fourNumber, 10, 4); // 转换为4进制$data['four'] = $fourNumber ?: 'NAN';// 4.二进制转换为八进制$eightNumber = bindec($two); // 转换为10进制$eight = base_convert($eightNumber, 10, 8); // 转换为8进制$data['eight'] = $eight ?: 'NAN';// 5.二进制转换为十六进制$sixteenNumber = bindec($two); // 转换为10进制$sixteen = base_convert($sixteenNumber, 10, 16); // 转换为16进制$data['sixteen'] = $sixteen ?: 'NAN';// 6.二进制转换为三十二进制$decimalNumber = bindec($two); // 将二进制数字转换为十进制$thirty_two = base_convert($decimalNumber, 10, 32); // 将十进制数字转换为32进制$data['thirty_two'] = $thirty_two ?: 'NAN';}if ($type == 4 && $four) {// 1.四进制转换十进制$ten = $this->base4_to_decimal($four);$data['ten'] = $ten ?: 'NAN';// 2.四进制转换为二进制$two = $this->base4_to_binary($four);$data['two'] = $two ?: 'NAN';// 3.四进制$data['four'] = $four;// 4.四进制转换为八进制$eight = $this->base4_to_octal($four);$data['eight'] = $eight ?: 'NAN';// 5.四进制转换为十六进制$sixteen = $this->base4_to_hexadecimal($four);$data['sixteen'] = $sixteen ?: 'NAN';// 6.四进制转换为三十二进制$thirty_two = $this->base4_to_base32($four);$data['thirty_two'] = $thirty_two ?: 'NAN';}if ($type == 8 && $eight) {// 1. 8进制转换为10进制$ten = octdec($eight);$data['ten'] = $ten ?: 'NAN';// 2. 8制转换为二进制$two = base_convert($eight, 8, 2);$data['two'] = $two ?: 'NAN';// 3. 8进制转换为4进制$four = base_convert($eight, 8, 4);$data['four'] = $four ?: 'NAN';// 4. 8进制$data['eight'] = $eight;// 5. 8进制转换为16进制$sixteen = base_convert($eight, 8, 16);$data['sixteen'] = $sixteen ?: 'NAN';// 6. 8进制转换为32进制$base32Chars = '0123456789ABCDEFGHIJKLMNOPQRSTUV';$base32Number = '';$decimalNumber = octdec($eight);while ($decimalNumber > 0) {$remainder = $decimalNumber % 32;$base32Number = $base32Chars[$remainder] . $base32Number;$decimalNumber = intdiv($decimalNumber, 32);}$data['thirty_two'] = $base32Number ?: 'NAN';}if ($type == 16 && $sixteen) {// 1. 将16进制转换为10进制$ten = hexdec($sixteen);$data['ten'] = $ten ?: 'NAN';// 2. 16制转换为2进制$two = base_convert($sixteen, 16, 2);$data['two'] = $two ?: 'NAN';// 3. 16进制转换为4进制$four = base_convert($sixteen, 16, 4);$data['four'] = $four ?: 'NAN';// 4. 16进制转换为8进制$eight = base_convert($sixteen, 16, 8);$data['eight'] = $eight;// 5. 16进制$data['sixteen'] = $sixteen;// 6. 将16进制转换为32进制$thirty_two = $this->hexToBase32($sixteen);$data['thirty_two'] = $thirty_two ?: 'NAN';}if ($type == 32 && $thirty_two) {// 1. 将32进制转换为10进制$ten = $this->base32ToDecimal($thirty_two);$data['ten'] = $ten ?: 'NAN';// 2. 32制转换为2进制$two = $this->base32ToBinary($thirty_two);$data['two'] = $two ?: 'NAN';// 3. 32进制转换为4进制$four = $this->base32ToQuaternary($thirty_two);$data['four'] = $four ?: 'NAN';// 4. 32进制转换为8进制$eight = $this->base32ToOctal($thirty_two);$data['eight'] = $eight;// 5. 32进制转换为16进制$data['sixteen'] = $this->base32ToHex($thirty_two);// 6. 32进制$data['thirty_two'] = $thirty_two;}return $this->jsonSuc(['result' => $data]);}/*** 十进制转换* @param $decimal* @param $base* @return string*/function decimalToBase($decimal, $base){$result = '';while ($decimal > 0) {$remainder = $decimal % $base;$result = $remainder . $result;$decimal = (int)($decimal / $base);}return $result;}/*** 十进制转换为三十二* @param $num* @return string*/function base10ToBase32($num){$chars = '0123456789ABCDEFGHIJKLMNOPQRSTUV';$base32 = '';while ($num > 0) {$remainder = $num % 32;$base32 = $chars[$remainder] . $base32;$num = (int)($num / 32);}return ($base32 === '') ? '0' : $base32;}/*** 4转换为10进制* @param $num* @return float|int*/function base4_to_decimal($num){$decimal = 0;$base = 4;$num_length = strlen($num);for ($i = 0; $i < $num_length; $i++) {$digit = intval($num[$i]);$decimal += $digit * pow($base, $num_length - $i - 1);}return $decimal;}/*** 4转换为2进制* @param $num* @return string*/function base4_to_binary($num){$decimal = $this->base4_to_decimal($num);return decbin($decimal);}/*** 4转换为8进制* @param $num* @return string*/function base4_to_octal($num){$decimal = $this->base4_to_decimal($num);return decoct($decimal);}/*** 4转换为16进制* @param $num* @return string*/function base4_to_hexadecimal($num){$decimal = $this->base4_to_decimal($num);return dechex($decimal);}/*** 4转换为32进制* @param $num* @return string*/function base4_to_base32($num){$decimal = $this->base4_to_decimal($num);return base_convert($decimal, 10, 32);}/*** 16转32进制* @param $hex* @return string*/function hexToBase32($hex){$base32Chars = '0123456789ABCDEFGHIJKLMNOPQRSTUV';$result = '';// 将十六进制字符串拆分成两个字符一组$hexPairs = str_split($hex, 2);// 将每个十六进制对转换为十进制,并将其转换为五位长的三十二进制数foreach ($hexPairs as $pair) {$dec = hexdec($pair);$base32 = '';while ($dec >= 32) {$rem = $dec % 32;$base32 = $base32Chars[$rem] . $base32;$dec = (int)($dec / 32);}$base32 = $base32Chars[$dec] . $base32;$result .= $base32;}return $result;}/*** 将32进制转换为10进制* @param string $num 32进制字符串* @return int 转换后的10进制数值*/function base32ToDecimal($num){$base32_chars = "0123456789abcdefghijklmnopqrstuv";$dec = 0;$len = strlen($num);for ($i = 0; $i < $len; $i++) {$pos = strpos($base32_chars, $num[$i]);$dec = 32 * $dec + $pos;}return $dec;}/*** 将32进制转换为2进制* @param string $num 32进制字符串* @return string 转换后的2进制字符串*/function base32ToBinary($num){$dec = $this->base32ToDecimal($num);$binary = decbin($dec);return $binary;}/*** 将32进制转换为4进制* @param string $num 32进制字符串* @return string 转换后的4进制字符串*/function base32ToQuaternary($num){$dec = $this->base32ToDecimal($num);$quaternary = base_convert($dec, 10, 4);return $quaternary;}/*** 将32进制转换为8进制* @param string $num 32进制字符串* @return string 转换后的8进制字符串*/function base32ToOctal($num){$dec = $this->base32ToDecimal($num);$octal = decoct($dec);return $octal;}/*** 将32进制转换为16进制* @param string $num 32进制字符串* @return string 转换后的16进制字符串*/function base32ToHex($num){$dec = $this->base32ToDecimal($num);$hex = dechex($dec);return $hex;}
相关文章:
PHP实现在线进制转换器,10进制,2、4、8、16、32进制转换
1.接口文档 2.laravel实现代码 /*** 进制转换计算器* return \Illuminate\Http\JsonResponse*/public function binaryConvertCal(){$ten $this->request(ten);$two $this->request(two);$four $this->request(four);$eight $this->request(eight);$sixteen …...
报错 | Spring报错详解
Spring报错详解 一、前言二、报错提示三、分层解读1.最下面一层Caused by2.上一层Caused by3.最上层Caused by 四、总结五、解决方案 一、前言 本文主要是记录在初次学习Spring时遇到报错后的解读以及解决方案 二、报错提示 三、分层解读 遇到报错的时候,我们需要…...
PHP最简单自定义自己的框架数据库封装调用(五)
1、实现效果调用实现数据增删改查封装 2、index.php 入口定义数据库账号密码 <?php//定义当前请求模块 define("MODULE",index);//定义数据库 define(DB_HOST,localhost);//数据库地址 define(DB_DATABASE,aaa);//数据库 define(DB_USER,root);//数据库账号 def…...
使用Redis来实现点赞功能的基本思路
使用Redis来实现点赞功能是一种高效的选择,因为Redis是一个内存数据库,适用于处理高并发的数据操作。以下是一个基本的点赞功能在Redis中的设计示例: 假设我们有一个文章或帖子,用户可以对其进行点赞,取消点赞&#x…...
【黑马头条之app端文章搜索ES-MongoDB】
本笔记内容为黑马头条项目的app端文章搜索部分 目录 一、今日内容介绍 1、App端搜索-效果图 2、今日内容 二、搭建ElasticSearch环境 1、拉取镜像 2、创建容器 3、配置中文分词器 ik 4、使用postman测试 三、app端文章搜索 1、需求分析 2、思路分析 3、创建索引和…...
Nginx安装以及LVS-DR集群搭建
Nginx安装 1.环境准备 yum insatall -y make gcc gcc-c pcre-devel #pcre-devel -- pcre库 #安装openssl-devel yum install -y openssl-devel 2.tar安装包 3.解压软件包并创建软连接 tar -xf nginx-1.22.0.tar.gz -C /usr/local/ ln -s /usr/local/nginx-1.22.0/ /usr/local…...
后端开发9.商品类型模块
概述 简介 商品类型我设计的复杂了点,设计了多级类型 效果图 数据库设计...
spring框架自带的http工具RestTemplate用法
1. RestTemplate是什么? RestTemplate是由Spring框架提供的一个可用于应用中调用rest服务的类它简化了与http服务的通信方式。 RestTemplate是一个执行HTTP请求的同步阻塞式工具类,它仅仅只是在 HTTP 客户端库(例如 JDK HttpURLConnection&a…...
【flink】Checkpoint expired before completing.
使用flink同步数据出现错误Checkpoint expired before completing. 11:32:34,455 WARN org.apache.flink.runtime.checkpoint.CheckpointFailureManager [Checkpoint Timer] - Failed to trigger or complete checkpoint 4 for job 1b1d41031ea45d15bdb3324004c2d749. (2 con…...
【论文阅读】NoDoze:使用自动来源分类对抗威胁警报疲劳(NDSS-2019)
NODOZE: Combatting Threat Alert Fatigue with Automated Provenance Triage 伊利诺伊大学芝加哥分校 Hassan W U, Guo S, Li D, et al. Nodoze: Combatting threat alert fatigue with automated provenance triage[C]//network and distributed systems security symposium.…...
【ARM64 常见汇编指令学习 16 -- ARM64 SMC 指令】
文章目录 ARMv8 同步异常同步异常指令SMC TYPE 上篇文章:ARM64 常见汇编指令学习 15 – ARM64 标志位的学习 下篇文章:ARM64 常见汇编指令学习 17 – ARM64 BFI 指令 ARMv8 同步异常 在ARMv8架构中,同步异常主要包括以下几种: Un…...
uprobe trace多线程mutex等待耗时
问题背景环境 ubuntu2204 服务器支持debugfs uprobe,为了提升应用程序的性能,需要量化不同参数下多线程主程序等待在mutex上的耗时区别 linux document中对uprobe events的说明如下 uprobetracer.rst - Documentation/trace/uprobetracer.rst - Linux…...
Linux 和 MacOS 中的 profile 文件详解(一)
什么是 profile 文件? profile 文件是 Linux、MacOS 等(unix、类 unix 系统)系统中的一种配置文件,主要用于设置系统和用户的环境变量。 在 shell 中,可以通过执行 profile 文件来设置用户的环境变量。shell 有两种运…...
不用技术代码,如何制作成绩查询系统?
为了解决学校无力承担传统学生考试成绩查询平台的高昂费用,老师们可以考虑使用易查分这样的工具来免费制作一个学生考试成绩查询平台。易查分是一种简单易用的在线成绩查询系统,可以帮助老师们快速创建一个个性化的学生考试成绩查询平台。 使用易查分制作…...
flinksql sink to sr often fail because of nullpoint
flinksql or DS sink to starrocks often fail because of nullpoint flink sql 和 flink ds sink starrocks 经常报NullpointException重新编译代码 并上传到flink 集群 验证,有效 flink sql 和 flink ds sink starrocks 经常报NullpointException 使用flink-sta…...
达梦数据库:Error updating database. Cause: dm.jdbc.driver.DMException: 数据未找到
异常:Error updating database. Cause: dm.jdbc.driver.DMException: 数据未找到 在使用达梦数据库批量插入或更新数据时,给我报了一个从来没有遇到过的错误,当时我给的一批数据就只有那么几条数据插入不进去,检查了语法和数据类…...
电脑怎么查看连接过的WIFI密码(测试环境win11,win10也能用)
电脑怎么查看连接过的WIFI密码 方法一:适用于正在连接的WIFI密码的查看 打开设置 点击“网络和Internet”,在下面找到“高级网络设置”点进去 在下面找到 “更多网络适配器选项” 点进去 找到 WLAN ,然后双击它 5.然后点击“无线属性” 6.…...
处理数据部分必备代码
1、读取数据出现UTF-8错误 encoding"gbk"2、进行时间系列的平均,并将平均后的数据转化为时间格式 data.index pd.to_datetime(data.index) data data.groupby(data.index.to_period(H)).mean() data.index data.index.to_timestamp() df[hour] df.i…...
layui 集成 ztree异步加载
首先,layui环境搭建,ztree环境引入 ztree的js和css都要引入,我这里暂时用的是core包> 静态,一句话就够了 <!-- 左侧菜单树形组件 --><div class"layui-col-md3"><div class"layui-footer "…...
LeetCode面向运气之Javascript—第27题-移除元素-98.93%
LeetCode第27题-移除元素 题目要求 一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度 举例 输入:nums [3,2,2,3], val 3 输出:2, nums [2,2] 输入:nums [0,1,2,2,3,0,4,2…...
高效实现PotPlayer实时字幕翻译:百度翻译插件完整配置指南
高效实现PotPlayer实时字幕翻译:百度翻译插件完整配置指南 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu 还在为观看外语视…...
Pixelle-Video:三步实现AI全自动短视频生成的专业开发指南
Pixelle-Video:三步实现AI全自动短视频生成的专业开发指南 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video Pixelle-Video是一…...
[APP微信登录] 登录失败:, {“errMsg“:“login:fail 业务参数配置缺失,https://ask.dcloud.net.cn/article/282“,“code“:-7}
在 uni-app 里做 APP 微信登录时,很多人会遇到这个报错。 现象是:uni.login({ provider: weixin }) 直接失败,返回 code: -7,提示“业务参数配置缺失”。 为什么加上 onlyAuthorize: true 就好了? 因为微信登录在 APP …...
从‘网红CP’到‘质量CPK’:给产品经理和项目经理的质量管理入门课
从“网红CP”到“质量CPK”:技术管理者必备的过程能力解码手册 当团队晨会上有人惊呼"这个需求迭代的CP值爆表了",新来的产品经理一脸茫然地以为大家在讨论办公室恋情——这或许就是数字化时代质量管理术语的尴尬现状。我们早已习惯用"CP…...
服务容灾设计思考
服务容灾设计思考:构建高可用系统的核心策略 在数字化时代,服务的连续性和稳定性成为企业竞争力的关键。无论是金融、电商还是公共服务领域,系统宕机或数据丢失都可能造成不可估量的损失。服务容灾设计正是为了解决这一问题而生,…...
CMT2380F32低功耗实战:用SysTick和LPT计时器设计一个精准的定时唤醒系统(附代码)
CMT2380F32低功耗实战:用SysTick和LPT计时器设计精准定时唤醒系统 引言 在物联网终端设备开发中,电池续航能力往往决定产品的市场竞争力。CMT2380F32作为一款面向低功耗场景的MCU,其深度休眠模式下的电流可低至1μA以下,但如何在…...
CANoe新手必看:从Intel到Motorola,一次搞懂DBC文件里的信号字节序
CANoe实战指南:彻底掌握DBC文件中的字节序奥秘 当你在深夜调试CAN总线信号时,突然发现仪表盘显示的车速比实际值少了256倍,或者雨刮器信号莫名其妙地反向工作——这很可能就是字节序在作祟。作为汽车电子工程师的"暗语",…...
加入国内正规水漆定制招商,实际收益和体验究竟如何?
家人们,最近不少人都在考虑加入国内正规水漆定制招商,我作为爱瑞德全屋定制的深度体验者,今天就来跟大家好好唠唠实际收益和体验到底咋样。我之前家里装修,就面临着不少痛点。家里收纳那叫一个混乱,各种东西堆得到处都…...
Kotaemon镜像快速部署:5步搭建企业级RAG问答平台
Kotaemon镜像快速部署:5步搭建企业级RAG问答平台 1. 为什么选择Kotaemon搭建RAG系统? 在当今企业智能化转型的浪潮中,检索增强生成(RAG)技术已成为连接大语言模型与企业知识库的关键桥梁。然而,传统RAG方…...
【VS Code Dev Containers 2026权威优化指南】:20位一线云原生架构师联合验证的7大性能跃迁实践
更多请点击: https://intelliparadigm.com 第一章:Dev Containers 2026核心架构演进与性能瓶颈图谱 Dev Containers 2026 在容器化开发范式中实现了从声明式配置到语义感知运行时的跃迁。其核心架构已不再依赖单一 Docker Compose 抽象层,而…...
